Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
HTTP
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Application layer protocol}} {{pp-vandalism|small=yes}} {{pp-pc}} {{Infobox protocol | image = HTTP logo.svg | standard = {{indented plainlist| * {{IETF RFC|1945}} HTTP/1.0 * {{IETF RFC|9110}} HTTP Semantics * {{IETF RFC|9111}} HTTP Caching * {{IETF RFC|9112}} HTTP/1.1 * {{IETF RFC|9113}} [[HTTP/2]] * {{IETF RFC|7541}} HTTP/2: HPACK Header Compression * {{IETF RFC|8164}} HTTP/2: Opportunistic Security for HTTP/2 * {{IETF RFC|8336}} HTTP/2: The ORIGIN HTTP/2 Frame * {{IETF RFC|8441}} HTTP/2: Bootstrapping WebSockets with HTTP/2 * {{IETF RFC|9114}} [[HTTP/3]] * {{IETF RFC|9204}} HTTP/3: QPACK: Field Compression }} | developer = Initially [[CERN]]; [[IETF]], [[W3C]] | introdate = {{Start date and age|1991|df=yes}} | newer = |website={{URL|https://httpwg.org/specs/}}}} {{HTTP}} {{IPstack}} '''HTTP''' ('''Hypertext Transfer Protocol''') is an [[application layer]] protocol in the [[Internet protocol suite]] model for distributed, collaborative, [[hypermedia]] information systems.<ref name="rfc9110" /> HTTP is the foundation of data communication for the [[World Wide Web]], where [[hypertext]] documents include [[hyperlink]]s to other resources that the user can easily access, for example by a [[Computer mouse|mouse]] click or by tapping the screen in a [[web browser]]. Development of HTTP was initiated by [[Tim Berners-Lee]] at [[CERN]] in 1989 and summarized in a simple document describing the behavior of a client and a server using the first HTTP version, named 0.9.<ref name="HTTP/0.9-specifications">{{Cite web|url=https://www.w3.org/pub/WWW/Protocols/HTTP/AsImplemented.html|title=The Original HTTP as defined in 1991|website=www.w3.org|publisher=World Wide Web Consortium|date=1991-01-01|access-date=2010-07-24|language=en|author=Tim Berner-Lee}}</ref> That version was subsequently developed, eventually becoming the public 1.0.<ref name="HTTP/1.0-first-unofficial-draft">{{Cite web|url=https://www.w3.org/Protocols/HTTP/HTTP2.html|title=Basic HTTP as defined in 1992|website=www.w3.org|publisher=World Wide Web Consortium|year=1992|access-date=2021-10-19|language=en|author=Tim Berner-Lee}}</ref> Development of early HTTP [[Requests for Comments]] (RFCs) started a few years later in a coordinated effort by the [[Internet Engineering Task Force]] (IETF) and the [[World Wide Web Consortium]] (W3C), with work later moving to the IETF. HTTP/1 was finalized and fully documented (as version 1.0) in 1996.<ref>In {{IETF RFC|1945}}. That specification was then overcome by HTTP/1.1.</ref> It evolved (as version 1.1) in 1997 and then its specifications were updated in 1999, 2014, and 2022.<ref>{{IETF RFC|2068}} (1997) was obsoleted by {{IETF RFC|2616}} in 1999, which was obsoleted by {{IETF RFC|7230}} in 2014, which was obsoleted by {{IETF RFC|9110}} in 2022.</ref> Its secure variant named [[HTTPS]] is used by more than 85% of websites.<ref name="HTTPS-usage-web-servers">{{Cite web|title=Usage Statistics of Default protocol https for websites|url=https://w3techs.com/technologies/details/ce-httpsdefault|access-date=2024-01-05|website=w3techs.com}}</ref> [[HTTP/2]], published in 2015, provides a more efficient expression of HTTP's semantics "on the wire". {{As of|2024|08|post=,}} it is supported by 66.2% of websites<ref name="HTTP2-usage-web-servers">{{Cite web|title=Usage Statistics of HTTP/2 for websites|url=https://w3techs.com/technologies/details/ce-http2|access-date=2024-01-05|website=w3techs.com}}</ref><ref>{{Cite web |title=Usage Statistics of HTTP/3 for Websites, August 2024 |url=https://w3techs.com/technologies/details/ce-http3 |access-date=2024-08-13 |website=w3techs.com}}</ref> (35.3% HTTP/2 + 30.9% HTTP/3 with backwards compatibility) and supported by almost all web browsers (over 98% of users).<ref name="HTTP2-Can-I-Use">{{Cite web|title=Can I use... Support tables for HTML5, CSS3, etc|url=https://caniuse.com/?search=http2|access-date=2024-01-05|website=caniuse.com}}</ref> It is also supported by major web servers over [[Transport Layer Security]] (TLS) using an [[Application-Layer Protocol Negotiation]] (ALPN) extension<ref name="rfc7301">{{cite ietf|rfc=7301|title=Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension|date=July 2014|publisher=IETF|doi=10.17487/RFC7301 |last1=Friedl |first1=S. |last2=Popov |first2=A. |last3=Langley |first3=A. |last4=Stephan |first4=E. }}</ref> where [[TLS 1.2]] or newer is required.<ref>{{cite web|url=https://http2.github.io/http2-spec/#TLSUsage|title=Hypertext Transfer Protocol Version 2, Use of TLS Features|last1=Belshe|first1=M.|last2=Peon|first2=R.|access-date=2015-02-10|last3=Thomson|first3=M.|archive-date=2013-07-15|archive-url=https://web.archive.org/web/20130715004452/https://http2.github.io/http2-spec/#TLSUsage|url-status=dead}}</ref><ref>{{Cite ietf|first=David|last=Benjamin|title=Using TLS 1.3 with HTTP/2|rfc=8740|access-date=2020-06-02|quote=This lowers the barrier for deploying TLS 1.3, a major security improvement over TLS 1.2.}}</ref> [[HTTP/3]], the successor to HTTP/2, was published in 2022.<ref>{{cite ietf|title=HTTP/3 |date=6 June 2022 |rfc=9114 |access-date=2022-06-06}}</ref> {{As of|2024|02|post=,}} it is now used on 30.9% of websites<ref name="HTTP3-usage-web-servers">{{Cite web|title=Usage Statistics of HTTP/3 for websites|url=https://w3techs.com/technologies/details/ce-http3|access-date=2024-01-08|website=w3techs.com}}</ref> and is supported by most web browsers, i.e. (at least partially) supported by 97% of users.<ref name="HTTP3-Can-I-Use">{{Cite web|title=Can I use... Support tables for HTML5, CSS3, etc|url=https://caniuse.com/?search=http3|access-date=2024-01-08|website=canIuse.com}}</ref> HTTP/3 uses [[QUIC]] instead of [[Transmission Control Protocol|TCP]] for the underlying transport protocol. Like HTTP/2, it does not obsolete previous major versions of the protocol. Support for HTTP/3 was added to [[Cloudflare]] and [[Google Chrome]] first,<ref>{{cite web|url=https://www.zdnet.com/article/cloudflare-google-chrome-and-firefox-add-http3-support/|title=Cloudflare, Google Chrome, and Firefox add HTTP/3 support|website=ZDNet|date=26 September 2019|access-date=27 September 2019|df=dmy-all|first=Catalin|last=Cimpanu}}</ref><ref>{{Cite web|url=https://blog.cloudflare.com/http3-the-past-present-and-future/|title=HTTP/3: the past, the present, and the future|date=2019-09-26|website=The Cloudflare Blog|language=en|access-date=2019-10-30}}</ref> and is also enabled in [[Firefox]].<ref>{{cite web |url=https://community.cloudflare.com/t/firefox-nightly-supports-http-3/127778 |title=Firefox Nightly supports HTTP 3 β General β Cloudflare Community |date=2019-11-19 |access-date=2020-01-23}}</ref> HTTP/3 has lower latency for real-world web pages, if enabled on the server, and loads faster than with HTTP/2, in some cases over three times faster than HTTP/1.1 (which is still commonly only enabled).<!-- The article written before HTTP/3 standardization, but after OUIC standardized, and that part of the article (and the link there links to older standard: "0-RTT should not be blindly enabled. There are some possible security concerns depending on your threat model." --><ref>{{Cite web |title=HTTP/3 is Fast |url=https://requestmetrics.com/web-performance/http3-is-fast |access-date=2022-07-01 |website=Request Metrics |language=en}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)