[pending revision][accepted revision]
Content deleted Content added
No edit summary
Tags: Reverted Mobile edit Mobile web edit
overuse of the same temp
 
(38 intermediate revisions by 29 users not shown)
Line 1:
block {{Short description|Application layer protocol for distributed, collaborative, hypermedia information systems}}
{{pp-pc1vandalism|small=yes}}
{{HTTPpp-pc}}
{{Infobox protocol
| image = HTTP logo.svg
Line 19 ⟶ 20:
| introdate = {{Start date and age|1991|df=yes}}
| newer =
|website={{URL|https://httpwg.org/specs/}}}}
}}
{{HTTP}}
{{IPstack}}
Line 44 ⟶ 45:
To allow intermediate HTTP nodes (proxy servers, web caches, etc.) to accomplish their functions, some of the [[List of HTTP header fields|HTTP headers]] (found in HTTP requests/responses) are managed [[hop-by-hop transport|hop-by-hop]] whereas other HTTP headers are managed [[end-to-end principle|end-to-end]] (managed only by the source client and by the target web server).
 
HTTP is an [[application layer]] protocol designed within the framework of the [[Internet protocol suite]]. Its definition presumes an underlying and reliable [[transport layer]] protocol.<ref name="rfc9110-3.3" /> In the latest version [[HTTP/3]], the [[Transmission Control Protocol]] (TCP) is no longer used, but the older versions are still more used and they most commonly use TCP. They have also been adapted to use unreliable protocols such as the [[User Datagram Protocol]] (UDP), which HTTP/3 also (indirectly) always builds on, for example in [[HTTPU]] and [[Simple Service Discovery Protocol]] (SSDP).
* The standard choice of the underlying protocol prior to HTTP/3 is [[Transmission Control Protocol]] (TCP).
* HTTP/3 uses a different transport layer called [[QUIC]], which provides reliability on top of the unreliable [[User Datagram Protocol]] (UDP).
* HTTP/1.1 and earlier have been adapted to be used over plain unreliable UDP in [[multicast]] and [[unicast]] situations, forming HTTPMU and HTTPU. They are used in [[UPnP]] and [[Simple Service Discovery Protocol]] (SSDP), two protocols usually run on a [[local area network]].
 
[[Web resource|HTTP resources]] are identified and located on the network by [[Uniform Resource Locator]]s (URLs), using the [[Uniform Resource Identifier]]s (URI'sURIs) schemes ''http'' and ''[[https]]''. As defined in {{IETF RFC|3986}}, URIs are encoded as [[hyperlink]]s in [[HTML]] documents, so as to form interlinked [[hypertext]] documents.
 
In HTTP/1.0 a separate TCP [[connection-oriented communication|connection]] to the same server is made for every resource request.<ref name="rfc1945-1.3">{{cite IETF |rfc=1945 |sectionname=Overall Operation |section=1.3 |title=RFC 1945|pages=6–8}}</ref>
Line 237 ⟶ 241:
HTTP is a [[stateless protocol]]. A stateless protocol does not require the web server to retain information or status about each user for the duration of multiple requests.
 
Some [[web application]]s need to manage user sessions, so they implement states, or [[Session (computer science)|server side sessions]], using for instance [[HTTP cookie]]s<ref>{{Cite journal |last1=Lee |first1=Wei-Bin |last2=Chen |first2=Hsing-Bai |last3=Chang |first3=Shun-Shyan |last4=Chen |first4=Tzung-Her |date=2019-01-25 |title=Secure and efficient protection for HTTP cookies with self-verification |url=https://onlinelibrary.wiley.com/doi/10.1002/dac.3857 |journal=International Journal of Communication Systems |language=en |volume=32 |issue=2 |pages=e3857 |doi=10.1002/dac.3857|s2cid=59524143 |url-access=subscription }}</ref> or hidden [[variable (computer science)|variable]]s within [[Form (web)|web form]]s.
 
To start an application user session, an interactive [[authentication]] via web application [[login]] must be performed. To stop a user session a [[logout]] operation must be requested by user. These kind of operations do not use [[#HTTP authentication|HTTP authentication]] but a custom managed web application authentication.
Line 247 ⟶ 251:
A client sends ''request messages'' to the server, which consist of:<ref name="rfc9112-2.1">{{cite IETF |rfc=9112 |sectionname=Message format |section=2.1 |title=RFC 9112: HTTP/1.1}}</ref>
 
* a '''request line''', consisting of the case-sensitive request method, a [[Space (punctuation)|space]], the requested URLURI, another space, the protocol version, a [[carriage return]], and a [[line feed]], e.g.:
{{sxhl|2=http|1=GET /images/logo.png HTTP/1.1}}
* zero or more [[HTTP request header field|request header fields]] (at least 1 or more headers in case of HTTP/1.1), each consisting of the case-insensitive field name, a colon, optional leading [[Whitespace (computer science)|whitespace]], the field value, an optional trailing whitespace and ending with a carriage return and a line feed, e.g.:
Line 495 ⟶ 499:
 
== See also ==
{{HTTP}}
* [[InterPlanetary File System]]{{dash}}can replace HTTP
* [[Comparison of file transfer protocols]]
Line 536 ⟶ 539:
[[Category:Application layer protocols]]
[[Category:Internet properties established in 1991]]
[[Category:Internet protocols]]
[[Category:Network protocols]]
[[Category:World Wide Web Consortium standards]]