An Overview of the HTTP Protocol As Covered in Rfcs 1
Total Page:16
File Type:pdf, Size:1020Kb
An Overview of the HTTP Protocol as covered in RFCs 1 Contents 1. Introduction and History ........................................................................................................................ 3 2. HTTP Versions ......................................................................................................................................... 3 3. HTTP Protocol Request/Response ......................................................................................................... 3 4. HTTP/1.0 and earlier .............................................................................................................................. 4 5. HTTP Keep-Alive ..................................................................................................................................... 4 6. HTTP Pipelining ....................................................................................................................................... 4 7. HTTP ........................................................................................................................................................ 5 8. HTTP Intermediaries: Proxy ................................................................................................................... 5 9. HTTP Intermediaries: Tunnel ................................................................................................................. 6 10. HTTP Methods ........................................................................................................................................ 6 11. HTTP/1.1 Request Header Examples ..................................................................................................... 6 12. HTTP/1.1 Response Header Examples ................................................................................................... 6 13. Cookies .................................................................................................................................................... 7 13.1 Types of Cookies ............................................................................................................................. 7 14. Authentication ........................................................................................................................................ 8 15. User Agent .............................................................................................................................................. 9 16. Content Negotiation ............................................................................................................................... 9 17. Transfer Encoding ................................................................................................................................... 9 17.1 Chunked Transfer Encoding ......................................................................................................... 10 18. MIME Encoding ..................................................................................................................................... 10 18.1 What is it used for? (MIME) ......................................................................................................... 10 18.2 MIME Format ................................................................................................................................ 10 18.3 How is it used? (MIME) ................................................................................................................ 11 18.4 Support for different languages (MIME) ..................................................................................... 11 18.5 Encoding (MIME) .......................................................................................................................... 11 18.6 Base 64 encoding Example (MIME) ............................................................................................. 11 18.7 Sending large Messages (MIME) .................................................................................................. 12 19. HTTP Caching ........................................................................................................................................ 12 19.1 Preventing Caching ....................................................................................................................... 12 19.2 Allowing Caching .......................................................................................................................... 12 19.3 Cache Validation and the 304 response ...................................................................................... 13 20. SPDY ...................................................................................................................................................... 13 21. What is HTTP/2? ................................................................................................................................... 13 21.1 HTTP/2 Specification .................................................................................................................... 13 21.2 HTTP/2 Over TLS (h2) ................................................................................................................... 14 2 An Overview of the HTTP Protocol as covered in RFCs 21.3 HTTP/2 Over TCP (h2c) ................................................................................................................. 14 21.4 TCP Connections - HTTP 1.1 versus HTTP/2 ................................................................................. 14 21.5 HTTP/2.0 Prioritized Requests ..................................................................................................... 14 21.6 HTTP/2.0 Compressed Headers ................................................................................................... 14 21.7 HTTP/2.0 Push .............................................................................................................................. 14 21.8 HTTP/2 Multiplexing .................................................................................................................... 15 22. How to Troubleshoot - Dev Tools ........................................................................................................ 15 23. How to Troubleshoot – Wireshark ....................................................................................................... 16 24. REST (Representational State Transfer) ............................................................................................... 18 25. REST HTTP Verbs ................................................................................................................................... 18 25.1 GET ................................................................................................................................................ 19 25.2 POST .............................................................................................................................................. 19 25.3 PUT ................................................................................................................................................ 19 25.4 DELETE ........................................................................................................................................... 20 26. WebSocket ............................................................................................................................................ 20 27. Protocol handshake .............................................................................................................................. 20 28. HTTP Long Polling ................................................................................................................................. 21 29. Web DAV ............................................................................................................................................... 21 30. JWT (JSON Web Token) – SSO .............................................................................................................. 22 31. JWT (JSON Web Token) ........................................................................................................................ 22 An Overview of the HTTP Protocol as covered in RFCs 3 1. Introduction and History Request for Comments (RFC) denotes a type of publication from the Internet Engineering Task Force (IETF) and Internet Society (ISOC). IETF and ISOC are the technical development and standard-setting bodies for the Internet and official documents of Internet specifications, communications protocols, procedures, and events. RFC covers the memorandum, behaviors, research, and innovations associated with the operations of the Internet and systems connected to the internet. RFC is submitted for peer review to convey new concepts and information. Steve Crocker created RFC documents in 1969 to record informal notes about the development of ARPANET (Advanced Research Projects Agency Network). 2. HTTP Versions Following lists specify Application protocol for distributed hypermedia First documented in 1991 (HTTP/0.9) HTTP/1.0 introduced in 1996 (RFC 1945) HTTP/1.1 updated in 1999 (RFC 2616) HTTP/2.0 updated in 2015 (RFC 7540) 3. HTTP Protocol Request/Response Hyper Text Transfer (HTTP) Protocol Request/Response includes Client and server exchange request/response messages, which uses the TCP protocol. For Client and server exchange request/response, the typical port number is 80. 4 An Overview