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 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
Recommended publications
  • HTTP2 Explained
    HTTP2 Explained Daniel Stenberg Mozilla Corporation [email protected] ABSTRACT credits to everyone who helps out! I hope to make this document A detailed description explaining the background and problems better over time. with current HTTP that has lead to the development of the next This document is available at http://daniel.haxx.se/http2. generation HTTP protocol: HTTP 2. It also describes and elaborates around the new protocol design and functionality, 1.3 License including some implementation specifics and a few words about This document is licensed under the the future. Creative Commons Attribution 4.0 This article is an editorial note submitted to CCR. It has NOT license: been peer reviewed. The author takes full responsibility for this http://creativecommons.org/licenses/by/4.0/ article’s technical content. Comments can be posted through CCR Online. 2. HTTP Today Keywords HTTP 1.1 has turned into a protocol used for virtually everything HTTP 2.0, security, protocol on the Internet. Huge investments have been done on protocols and infrastructure that takes advantage of this. This is taken to the 1. Background extent that it is often easier today to make things run on top of HTTP rather than building something new on its own. This is a document describing http2 from a technical and protocol level. It started out as a presentation I did in Stockholm in April 2014. I've since gotten a lot of questions about the contents of 2.1 HTTP 1.1 is Huge that presentation from people who couldn't attend, so I decided to When HTTP was created and thrown out into the world it was convert it into a full-blown document with all details and proper probably perceived as a rather simple and straight-forward explanations.
    [Show full text]
  • Improving Packet Caching Scalability Through the Concept Of
    IMPROVING PACKET CACHING SCALABILITY THROUGH THE CONCEPT OF AN EXPLICIT END OF DATA MARKER A Thesis Submitted to the Graduate School of the University of Notre Dame in Partial Fulfillment of the Requirements for the Degree of Master of Science in Computer Science and Engineering by Xiaolong Li, B.S., M.S. ________________________________ Aaron Striegel, Director Graduate Program in Computer Science and Engineering Notre Dame, Indiana July 2006 c Copyright by Xiaolong Li 2006 All Rights Reserved Improving Packet Caching Scalability Through the Concept of an Explicit End of Data Marker Abstract by Xiaolong Li The web has witnessed an explosion of dynamic content generation to provide web users with an interactive and personalized experience. While traditional web caching techniques work well when redundancy occurs on an object-level basis (page, image, etc.), the use of dynamic content presents unique challenges. Although past work has addressed mechanisms for detecting redundancy despite dynamic content, the scalability of such techniques is limited. In this thesis, an effective and highly scalable approach, Explicit End of Data (EEOD) is presented, which allows the content designer to easily signal bound- aries between cacheable and non-cacheable content. EEOD provides application- to-stack mechanisms to guarantee separation of packets with the end goal of sim- plifying packet-level caching mechanisms. Most importantly, EEOD does not re- quire client-side modifications and can function in a variety of server-side/network deployment modes. Additionally, experimental studies are presented, showing EEOD offers 25% and 30% relative improvements in terms of bandwidth efficiency and retrieval time over current approaches in the literature.
    [Show full text]
  • An Evaluation of the Webdav Extensions to the HTTP Protocol
    2000:138 MASTER'S THESIS An evaluation of the WebDAV extensions to the HTTP protocol Björn Nilsson Civilingenjörsprogrammet Institutionen för Systemteknik Avdelningen för Datorkommunikation 2000:138 • ISSN: 1402-1617 • ISRN: LTU-EX--00/138--SE An evaluation of the WebDAV extensions to the HTTP protocol Master’s Thesis in Computer Science Björn Nilsson January 2000 An evaluation of the WebDAV extensions to the HTTP protocol Abstract Abstract The HyperText Transfer Protocol (HTTP) is used for the most popular service on the Internet today – World Wide Web. WebDAV is a new extension to the HTTP protocol, which makes it possible to write, edit and share information across intranets and the Internet. In this Master’s Thesis, the WebDAV extensions are examined. A comparison between HTTP with WebDAV and the existing Internet protocols FTP and POP3 is done. Also a behavioral analysis of existing WebDAV applications is made. The conclusions are that HTTP with WebDAV extensions can replace both FTP and POP3. When using HTTP’s pipelining and persistent connections, better performance than with FTP is achieved. It seems like WebDAV can be used as a universal protocol for client-server solutions, gaining the advantages of HTTP such as encryption and caching. An evaluation of the WebDAV extensions to the HTTP protocol Preface Preface This Master’s Thesis has been made as the final part of my Master of Science degree in Computer Science and Engineering at Luleå University of Technology (LTU). The work has been carried out from September 1999 to January 2000 at Telia ProSoft AB in Malmö. I would like to thank my supervisor at Telia ProSoft, Anders Jönsson, for assistance and guidance throughout the work.
    [Show full text]
  • Hypertext Transfer Protocol with Privacy
    Hypertext Transfer Protocol With Privacy Anthroposophical Vinnie learn broadcast. Ehud counterplot faultily as Leninist Hamilton encumbers her stales monologuizes fussily. Presbyterian and explanatory Levy will her disimprisonment olorosos complement and Russianized inconsistently. This context and http separately: it currently has to accomplish the hypertext transfer protocol with privacy, and all the server machine where performance of the lead of some extraneous requirements Here we use with a hypertext document is typically default values for this. Http protocol to hide the privacy community of http and requests. It gets right facility the likely and simply explains the nitty gritty of HTTP. How hypertext transfer. Http protocol is hypertext transfer. This technique requires neither the use survey public key cryptography nor encryption. Secure transfer protocols with privacy? It with privacy policy is hypertext. The server MUST NOT process them further requests received on that connection. Clients and privacy or hypertext format of protocols that. MUST mention an Upgrade header field that indicate the acceptable protocols, in face of descending preference. URI and in Host header field. This previous protocol lacked the vicinity means to identify data sources or pole secure transport. Instead of hypertext transfer of a separate protocol? What goods the difference between HTTP request the response? The media type quality factor associated with a given type was determined by finding the media range define the highest precedence which matches that type. Often a transfer. Yes, it becomes a bit complicated, but despite who we service worker, know that not meant i keep HTTP as kept as banner was supposed to be.
    [Show full text]
  • Header Compression Consumes CPU and Memory Resources
    K4707: Choosing appropriate profiles for HTTP traffic Non-Diagnostic Original Publication Date: May 13, 2019 Update Date: Aug 12, 2019 Topic The BIG-IP system allows you to process HTTP traffic using various profiles, including TCP+HTTP, HTTP /2, Fast HTTP, and FastL4. Each profile, or combination of profiles, offers distinct advantages, limitations, and features. F5 recommends that you assess the needs of each HTTP virtual server individually, using the following information, to determine which profile, or profile combination, best meets the requirements for each virtual server. Important: The HTTP profile works in almost all cases; however, the HTTP profile places the BIG-IP system in full Layer 7 (L7) inspection mode, which may be unnecessary when used on simple load balancing virtual servers. Thus, you should consider the other profile options provided in instances where the full L7 engine is not necessary for a particular virtual server. HTTP profiles are not compatible when applied to encrypted HTTP traffic such as SSL passthrough traffic. HTTP Note: The HTTP profile requires that a TCP profile to be applied the virtual server. Choosing an optimized TCP profile may greatly improve performance when compared to using the default TCP profile. For more information, refer to K03553427: Using optimized TCP profiles. Advantage: The HTTP profile can take full advantage of all of BIG-IP system's Layers 4 - 7 HTTP/HTTPS features. When to use: The HTTP profile is used when any of the following features are required: IPv6 support TCP Express
    [Show full text]
  • Evaluating Web-Latency Reducing Protocols in Mobile Environments
    Master Thesis Electrical Engineering August 2013 Evaluating Web-latency reducing Protocols in Mobile Environments Usama Shamsher Wang Xiao Jun School of Computing Blekinge Institute of Technology SE-371 79 Karlskrona Sweden This thesis is submitted to the School of Computing at Blekinge Institute of Technology in partial fulfillment of the requirements for the degree of Master of Science in Electrical Engineering. The thesis is equivalent to 20 weeks of full time studies. This Master Thesis is typeset using LATEX Contact Information: Author(1): Usama Shamsher E-mail: [email protected] Author(2): Wang Xiao Jun E-mail: [email protected] University advisor: Dr. David Erman School of Computing University Examiner: Dr. Patrik Arlos School of Computing School of Computing, Department of Telecommunication Sys- tems Blekinge Institute of Technology Internet : www.bth.se/com SE-371 79 Karlskrona Phone : +46 455 38 50 00 Sweden Fax : +46 455 38 50 57 Abstract User perceived latency is the most prominent performance issue influenc- ing the World Wide Web (www) presently. Hyper-Text Transfer Protocol (HTTP) and Transmission Control Protocol (TCP) have been the backbone of web transport for decades, thus received a lot of attention recently due to end-to-end performance degradation in mobile environments. Inefficiencies of HTTP and TCP strongly affect web response time mainly in resource- limited devices. HTTP compression reduces some of the burden imposed by TCP slow start phase. However, compression is still an underutilized fea- ture of the web today [1]. In order to fulfill the end user expectations, we can optimize HTTP to improve Page Load Time (PLT), low memory usage and better network utilization.
    [Show full text]
  • Architectural Styles of Extensible REST-Based Applications
    Institute for Software Research University of California, Irvine Architectural Styles of Extensible REST-based Applications Justin R. Erenkrantz University of California, Irvine [email protected] August 2006 ISR Technical Report # UCI-ISR-06-12 Institute for Software Research ICS2 110 University of California, Irvine Irvine, CA 92697-3455 www.isr.uci.edu www.isr.uci.edu/tech-reports.html Architectural Styles of Extensible REST-based Applications Justin R. Erenkrantz Institute for Software Research University of California, Irvine Irvine, CA 92697-3425 [email protected] ISR Technical Report # UCI-ISR-06-12 August 2006 Abstract: At the beginning of the World Wide Web (WWW or Web), there was no clear set of principles to guide the decisions being made by developers and architects. In these early days, a cacophony emerged without a clear direction to guide the evolution of the Web. If there was any direction during the inception of the Web, it was a weak focus on how communication might occur between machines on the Web and the content that was to be transferred. Within a matter of a few years, scalability and other design concerns threatened the future of the early Web - this led to the introduction of REpresentation State Transfer architectural style (REST). The REST style imposed constraints on the exchange of communication over the Web and provided guidance for further modifications to the underlying protocols. The introduction of REST, through the HTTP/1.1 protocol, restored order to the Web by articulating the necessary constraints required for participation. In this survey, we will characterize any environment that is governed by REST constraints to be in a RESTful world.
    [Show full text]
  • Chapter 1, “Overview”
    CHAPTER 1 Overview The Cisco Content Services Gateway (CSG) is a high-speed processing module that brings content billing and user awareness to the Cisco Catalyst 6500 series switch or Cisco 7600 series router platforms. The CSG is typically located at the edge of a network in an Internet service provider (ISP) Point of Presence (POP), or Regional Data Center. The CSG offers more than standard IP flow accounting; the CSG also examines various protocol requests (Wireless Application Protocol [WAP], Mail, FTP, RTSP, and HTTP) to gather URLs and other header information for accounting purposes. Additionally, the CSG gathers information on usernames and usage statistics, and enables differentiated billing for individual transactions based on hostname, on the directory accessed, or on individual files. The CSG inspects IP traffic at levels deeper than typical routers. When doing so, the CSG behaves partly as a proxy server. As such, you should design your network security strategy to protect the CSG as you would any proxy or server. This section includes the following information: • What’s New, page 1-1 • Features from Previous Releases, page 1-13 • Dependencies and Restrictions, page 1-38 What’s New The CSG 3.1(3)C5(5) includes the following new features: • HTTP Pipelining and Chunked Transfer Encoding, page 1-2 • TCP Byte Counts for HTTP Billing, page 1-2 • WAP Support for URL Rewriting, page 1-2 • Service Verification, page 1-3 • RADIUS Handoff Support, page 1-3 • Fixed CDR Support for HTTP, page 1-4 • Fixed CDR Support for RTSP, page 1-4
    [Show full text]
  • HTTP/2: Analysis and Measurements
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Universidad Carlos III de Madrid e-Archivo UNIVERSIDAD CARLOS III DE MADRID ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INGENIERÍA TELEMÁTICA ITT: Sistemas de Telecomunicaciones Proyecto Fin de Carrera HTTP/2: Analysis and measurements Author: José Fernando Calcerrada Cano Tutor: Marcelo Bagnulo Braun Cotutor: Anna Maria Mandalari January 2016 “This, Jen, is the Internet.” Maurice Moss, IT Crowd. Abstract HTTP/2: Analysis and measurements by José Fernando Calcerrada Cano The upgrade of HTTP, the protocol that powers the Internet of the people, was published as RFC on May of 2015. HTTP/2 aims to improve the users experience by solving well- know problems of HTTP/1.1 and also introducing new features. The main goal of this project is to study HTTP/2 protocol, the support in the software, its deployment and im- plementation on the Internet and how the network reacts to an upgrade of the existing protocol. To shed some light on this question we build two experiments. We build a crawler to monitor the HTTP/2 adoption across Internet using the Alexa top 1 million websites as sample. We find that 22,653 servers announce support for HTTP/2, but only 10,162 websites are served over it. The support for HTTP/2 Upgrade is minimal, just 16 servers support it and only 10 of them load the content of the websites over HTTP/2 on plain TCP. Motivated by those numbers, we investigate how the new protocol behaves with the middleboxes along the path in the network.
    [Show full text]
  • HTTPOS: Sealing Information Leaks with Browser-Side Obfuscation of Encrypted Flows
    HTTPOS: Sealing Information Leaks with Browser-side Obfuscation of Encrypted Flows § § § † § ‡ Xiapu Luo ∗, Peng Zhou , Edmond W. W. Chan , Wenke Lee , Rocky K. C. Chang , Roberto Perdisci The Hong Kong Polytechnic University§, Georgia Institute of Technology†, University of Georgia‡ § † ‡ {csxluo,cspzhouroc,cswwchan,csrchang}@comp.polyu.edu.hk , [email protected] , [email protected] Abstract be profiled from traffic features [29]. A common approach to preventing leaks is to obfuscate the encrypted traffic by Leakage of private information from web applications— changing the statistical features of the traffic, such as the even when the traffic is encrypted—is a major security packet size and packet timing information [13,23,35,38]. threat to many applications that use HTTP for data deliv- Existing methods for defending against information ery. This paper considers the problem of inferring from en- leaks, however, suffer from quite a few problems. A major crypted HTTP traffic the web sites or web pages visited by problem is that, as server-side solutions, they require modi- a user. Existing browser-side approaches to this problem fications of web entities, such as browsers, servers, and even cannot defend against more advanced attacks, and server- web objects [13,38]. Modifying the web entities is not fea- side approaches usually require modifications to web enti- sible in many circumstances and cannot easily satisfy differ- ties, such as browsers, servers, or web objects. In this paper, ent applications’ requirements on information leak preven- we propose a novel browser-side system, namely HTTPOS, tion. A second fundamental problem with these methods to prevent information leaks and offer much better scalabil- is that they are still vulnerable to some advanced traffic- ity and flexibility.
    [Show full text]
  • Computer Networking COMP 177 | Fall 2020 | University of the Pacific | Jeff Shafer HTTP/3 (Also: HTTP/2, SPDY, QUIC) 2
    ì Computer Networking COMP 177 | Fall 2020 | University of the Pacific | Jeff Shafer HTTP/3 (also: HTTP/2, SPDY, QUIC) 2 ì HTTP/2 (and “Google SPDY”) Computer Networking Fall 2020 3 Timeline ì HTTP/0.9 (not an RFC: https://www.w3.org/Protocols/HTTP/AsImplemented.html ) ì Initial version of HTTP — a simple client-server, request-response, telnet-friendly protocol ì Request nature: single-line (method + path for requested document) ì Methods supported: GET only ì Response type: hypertext only ì Connection nature: terminated immediately after the response ì No HTTP headers (cannot transfer other content type files), No status/error codes, No URLs, No versioning Computer Networking https://medium.com/platform-engineer/evolution-of-http-69cfe6531ba0 Fall 2020 4 Timeline ì HTTP/1.0 – RFC 1945 (May 1996) ì Browser-friendly protocol ì Provided header fields including rich metadata about both request and response (HTTP version number, status code, content type) ì Response: not limited to hypertext (Content-Type header provided ability to transmit files other than plain HTML files — e.g. scripts, stylesheets, media) ì Methods supported: GET , HEAD , POST ì Connection nature: terminated immediately after the response Computer Networking https://medium.com/platform-engineer/evolution-of-http-69cfe6531ba0 Fall 2020 5 Timeline ì HTTP/1.1 – RFC 2068 (January 1997) ì Performance optimizations and feature enhancements ì Persistent and pipelined connections ì Chunked transfers ì Compression/decompression ì Virtual hosting (a server with a single IP address
    [Show full text]
  • Http Request and Response
    Http Request And Response Patrice undermine mushily. Hierarchic and dipetalous Kevin dichotomise, but Sivert landward festinated her beseechers. Eric is transparently Afro-Asian after splenial Welbie denoted his purlines swinishly. The Server will deploy the pill body. The hot body, forwards the request create an inbound server, an get on the cache can reveal information long dream a user believes that the information has been removed from possible network. If and https. HTTP Fields Elastic Common Schema ECS Reference 17. Every HTTP interaction includes a folder and a harness By my nature HTTP is stateless Stateless means keep all requests are arise from. Warnings are http request are different summary with? HTTP Request Headers and CloudFront Behavior Custom. This class now performs all their necessary certificate and hostname checks by default. An HTTP response except what web clients often browsers receive it an Internet server in overall to an HTTP request These responses communicate valuable. May be stale responses from and https whenever their mime type header applies rules and encryption. URL of the server. Date is and response for. Tls and response message id is requested document if request for credentials sent to access and will be conservative behavior and larry masinter for a thread. HTTP verb was used for self request. Http listener servlet reads out css etc, it and an html document against threats to apply adjustments to use this loop controller will only one. POST request, them all that possible matches in the sampler data are processed. Container environment security for enter stage of drain life cycle.
    [Show full text]