Misplaced Pages

SPDY

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

SPDY (pronounced "speedy") is an obsolete open-specification communication protocol developed for transporting web content . SPDY became the basis for HTTP/2 specification. However, HTTP/2 diverged from SPDY and eventually HTTP/2 subsumed all usecases of SPDY. After HTTP/2 was ratified as a standard, major implementers, including Google, Mozilla, and Apple, deprecated SPDY in favor of HTTP/2. Since 2021, no modern browser supports SPDY.

#358641

75-399: Google announced SPDY in late 2009 and deployed in 2010. SPDY manipulates HTTP traffic, with particular goals of reducing web page load latency and improving web security . SPDY achieves reduced latency through compression , multiplexing , and prioritization, although this depends on a combination of network and website deployment conditions. The name "SPDY" is not an acronym . HTTP/2

150-473: A web of trust , the 2013 mass surveillance disclosures drew attention to certificate authorities as a potential weak point allowing man-in-the-middle attacks . An important property in this context is forward secrecy , which ensures that encrypted communications recorded in the past cannot be retrieved and decrypted should long-term secret keys or passwords be compromised in the future. Not all web servers provide forward secrecy. For HTTPS to be effective,

225-439: A batch of RFCs was published, deprecating many of the previous documents and introducing a few minor changes and a refactoring of HTTP semantics description into a separate document. HTTP is a stateless application-level protocol and it requires a reliable network transport connection to exchange data between client and server. In HTTP implementations, TCP/IP connections are used using well-known ports (typically port 80 if

300-493: A client user interface called web browser . Berners-Lee designed HTTP in order to help with the adoption of his other idea: the "WorldWideWeb" project, which was first proposed in 1989, now known as the World Wide Web . The first web server went live in 1990. The protocol used had only one method, namely GET, which would request a page from a server. The response from the server was always an HTML page. In 1991,

375-474: A client failing to properly encode the request-target. Since 2016 many product managers and developers of user agents (browsers, etc.) and web servers have begun planning to gradually deprecate and dismiss support for HTTP/0.9 protocol, mainly for the following reasons: In 2020, the first drafts HTTP/3 were published and major web browsers and web servers started to adopt it. On 6 June 2022, IETF standardized HTTP/3 as RFC   9114 . In June 2022,

450-700: A correctly configured web server, eavesdroppers can infer the IP address and port number of the web server, and sometimes even the domain name (e.g. www.example.org, but not the rest of the URL) that a user is communicating with, along with the amount of data transferred and the duration of the communication, though not the content of the communication. Web browsers know how to trust HTTPS websites based on certificate authorities that come pre-installed in their software. Certificate authorities are in this way being trusted by web browser creators to provide valid certificates. Therefore,

525-421: A far future version of HTTP called HTTP-NG (HTTP Next Generation) that would have solved all remaining problems, of previous versions, related to performances, low latency responses, etc. but this work started only a few years later and it was never completed. In May 1996, RFC   1945 was published as a final HTTP/1.0 revision of what had been used in previous 4 years as a pre-standard HTTP/1.0-draft which

600-671: 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. It evolved (as version 1.1) in 1997 and then its specifications were updated in 1999, 2014, and 2022. Its secure variant named HTTPS is used by more than 85% of websites. HTTP/2 , published in 2015, provides

675-536: A globally routable address, by relaying messages with external servers. To allow intermediate HTTP nodes (proxy servers, web caches, etc.) to accomplish their functions, some of the HTTP headers (found in HTTP requests/responses) are managed hop-by-hop whereas other HTTP headers are managed end-to-end (managed only by the source client and by the target web server). HTTP is an application layer protocol designed within

750-421: A more efficient expression of HTTP's semantics "on the wire". As of August 2024, it is supported by 66.2% of websites (35.3% HTTP/2 + 30.9% HTTP/3 with backwards compatibility) and supported by almost all web browsers (over 98% of users). It is also supported by major web servers over Transport Layer Security (TLS) using an Application-Layer Protocol Negotiation (ALPN) extension where TLS 1.2 or newer

825-706: A number of types, including Extended Validation Certificates . Let's Encrypt , launched in April 2016, provides free and automated service that delivers basic SSL/TLS certificates to websites. According to the Electronic Frontier Foundation , Let's Encrypt will make switching from HTTP to HTTPS "as easy as issuing one command, or clicking one button." The majority of web hosts and cloud providers now leverage Let's Encrypt, providing free certificates to their customers. The system can also be used for client authentication in order to limit access to

SECTION 10

#1732780078359

900-549: A particular address and port combination. In the past, this meant that it was not feasible to use name-based virtual hosting with HTTPS. A solution called Server Name Indication (SNI) exists, which sends the hostname to the server before encrypting the connection, although many old browsers do not support this extension. Support for SNI is available since Firefox 2, Opera 8, Apple Safari 2.1, Google Chrome 6, and Internet Explorer 7 on Windows Vista . A sophisticated type of man-in-the-middle attack called SSL stripping

975-536: A server establishing a connection (real or virtual). An HTTP(S) server listening on that port accepts the connection and then waits for a client's request message. The client sends its HTTP request message. Upon receiving the request the server sends back an HTTP response message, which includes header(s) plus a body if it is required. The body of this response message is typically the requested resource, although an error message or other information may also be returned. At any time (for many reasons) client or server can close

1050-414: A site must be completely hosted over HTTPS. If some of the site's contents are loaded over HTTP (scripts or images, for example), or if only a certain page that contains sensitive information, such as a log-in page, is loaded over HTTPS while the rest of the site is loaded over plain HTTP, the user will be vulnerable to attacks and surveillance. Additionally, cookies on a site served through HTTPS must have

1125-712: A user should trust an HTTPS connection to a website if and only if all of the following are true: HTTPS is especially important over insecure networks and networks that may be subject to tampering. Insecure networks, such as public Wi-Fi access points, allow anyone on the same local network to packet-sniff and discover sensitive information not protected by HTTPS. Additionally, some free-to-use and paid WLAN networks have been observed tampering with webpages by engaging in packet injection in order to serve their own ads on other websites. This practice can be exploited maliciously in many ways, such as by injecting malware onto webpages and stealing users' private information. HTTPS

1200-764: A warning across the entire window. Newer browsers also prominently display the site's security information in the address bar . Extended validation certificates show the legal entity on the certificate information. Most browsers also display a warning to the user when visiting a site that contains a mixture of encrypted and unencrypted content. Additionally, many web filters return a security warning when visiting prohibited websites. The Electronic Frontier Foundation , opining that "In an ideal world, every web request could be defaulted to HTTPS", has provided an add-on called HTTPS Everywhere for Mozilla Firefox , Google Chrome , Chromium , and Android , which enables HTTPS by default for hundreds of frequently used websites. Forcing

1275-475: A web browser to load only HTTPS content has been supported in Firefox starting in version 83. Starting in version 94, Google Chrome is able to "always use secure connections" if toggled in the browser's settings. The security of HTTPS is that of the underlying TLS, which typically uses long-term public and private keys to generate a short-term session key , which is then used to encrypt the data flow between

1350-604: A web server to accept HTTPS connections, the administrator must create a public key certificate for the web server. This certificate must be signed by a trusted certificate authority for the web browser to accept it without warning. The authority certifies that the certificate holder is the operator of the web server that presents it. Web browsers are generally distributed with a list of signing certificates of major certificate authorities so that they can verify certificates signed by them. A number of commercial certificate authorities exist, offering paid-for SSL/TLS certificates of

1425-422: A web server to authorized users. To do this, the site administrator typically creates a certificate for each user, which the user loads into their browser. Normally, the certificate contains the name and e-mail address of the authorized user and is automatically checked by the server on each connection to verify the user's identity, potentially without even requiring a password. An important property in this context

1500-1059: Is perfect forward secrecy (PFS). Possessing one of the long-term asymmetric secret keys used to establish an HTTPS session should not make it easier to derive the short-term session key to then decrypt the conversation, even at a later time. Diffie–Hellman key exchange (DHE) and Elliptic-curve Diffie–Hellman key exchange (ECDHE) are in 2013 the only schemes known to have that property. In 2013, only 30% of Firefox, Opera, and Chromium Browser sessions used it, and nearly 0% of Apple's Safari and Microsoft Internet Explorer sessions. TLS 1.3, published in August 2018, dropped support for ciphers without forward secrecy. As of February 2019 , 96.6% of web servers surveyed support some form of forward secrecy, and 52.1% will use forward secrecy with most browsers. As of July 2023 , 99.6% of web servers surveyed support some form of forward secrecy, and 75.2% will use forward secrecy with most browsers. A certificate may be revoked before it expires, for example because

1575-495: Is a revision of previous HTTP/2 in order to use QUIC + UDP transport protocols instead of TCP. Before that version, TCP/IP connections were used; but now, only the IP layer is used (which UDP, like TCP, builds on). This slightly improves the average speed of communications and to avoid the occasional (very rare) problem of TCP connection congestion that can temporarily block or slow down the data flow of all its streams (another form of " head of line blocking "). The term hypertext

SECTION 20

#1732780078359

1650-654: Is also important for connections over the Tor network , as malicious Tor nodes could otherwise damage or alter the contents passing through them in an insecure fashion and inject malware into the connection. This is one reason why the Electronic Frontier Foundation and the Tor Project started the development of HTTPS Everywhere , which is included in Tor Browser. As more information is revealed about global mass surveillance and criminals stealing personal information,

1725-544: Is designed to withstand such attacks and is considered secure against them (with the exception of HTTPS implementations that use deprecated versions of SSL). HTTP operates at the highest layer of the TCP/IP model —the application layer ; as does the TLS security protocol (operating as a lower sublayer of the same layer), which encrypts an HTTP message prior to transmission and decrypts a message upon arrival. Strictly speaking, HTTPS

1800-601: Is for security and to avoid incompatibility when communication is across a proxy . SPDY does not replace HTTP; it modifies the way HTTP requests and responses are sent over the wire . This means that all existing server-side applications can be used without modification if a SPDY-compatible translation layer is put in place. SPDY is effectively a tunnel for the HTTP and HTTPS protocols. When sent over SPDY, HTTP requests are processed, tokenized, simplified and compressed. For example, each SPDY endpoint keeps track of which headers have been sent in past requests and can avoid resending

1875-476: Is not a separate protocol, but refers to the use of ordinary HTTP over an encrypted SSL/TLS connection. HTTPS encrypts all message contents, including the HTTP headers and the request/response data. With the exception of the possible CCA cryptographic attack described in the limitations section below, an attacker should at most be able to discover that a connection is taking place between two parties, along with their domain names and IP addresses. To prepare

1950-459: Is only performed by the server. The mutual version requires the user to install a personal client certificate in the web browser for user authentication. In either case, the level of protection depends on the correctness of the implementation of the software and the cryptographic algorithms in use. SSL/TLS does not prevent the indexing of the site by a web crawler , and in some cases the URI of

2025-486: Is recommended to use HTTP Strict Transport Security (HSTS) with HTTPS to protect users from man-in-the-middle attacks, especially SSL stripping . HTTPS should not be confused with the seldom-used Secure HTTP (S-HTTP) specified in RFC 2660. As of April 2018 , 33.2% of Alexa top 1,000,000 websites use HTTPS as default and 70% of page loads (measured by Firefox Telemetry) use HTTPS. As of December 2022 , 58.4% of

2100-401: Is required. HTTP/3 , the successor to HTTP/2, was published in 2022. As of February 2024, it is now used on 30.9% of websites and is supported by most web browsers, i.e. (at least partially) supported by 97% of users. HTTP/3 uses QUIC instead of TCP for the underlying transport protocol. Like HTTP/2, it does not obsolete previous major versions of the protocol. Support for HTTP/3

2175-591: Is required. TLS encryption is nearly ubiquitous in SPDY implementations, and transmission headers are gzip - or DEFLATE -compressed by design (in contrast to HTTP, where the headers are sent as human-readable text). Moreover, servers may hint or even push content instead of awaiting individual requests for each resource of a web page. SPDY requires the use of SSL/TLS (with TLS extension ALPN ) for security but it also supports operation over plain TCP . The requirement for SSL

2250-570: The Hypertext Transfer Protocol (HTTP). It uses encryption for secure communication over a computer network , and is widely used on the Internet . In HTTPS, the communication protocol is encrypted using Transport Layer Security (TLS) or, formerly, Secure Sockets Layer (SSL). The protocol is therefore also referred to as HTTP over TLS , or HTTP over SSL . The principal motivations for HTTPS are authentication of

2325-422: The client whereas a process , named web server , running on a computer hosting one or more websites may be the server . The client submits an HTTP request message to the server. The server, which provides resources such as HTML files and other content or performs other functions on behalf of the client, returns a response message to the client. The response contains completion status information about

SPDY - Misplaced Pages Continue

2400-569: The secure attribute enabled. On a site that has sensitive information on it, the user and the session will get exposed every time that site is accessed with HTTP instead of HTTPS. HTTPS URLs begin with "https://" and use port 443 by default, whereas, HTTP URLs begin with "http://" and use port 80 by default. HTTP is not encrypted and thus is vulnerable to man-in-the-middle and eavesdropping attacks , which can let attackers gain access to website accounts and sensitive information, and modify webpages to inject malware or advertisements. HTTPS

2475-731: The HTTP Working Group released an updated six-part HTTP/1.1 specification obsoleting RFC   2616 : In RFC   7230 Appendix-A, HTTP/0.9 was deprecated for servers supporting HTTP/1.1 version (and higher): Since HTTP/0.9 did not support header fields in a request, there is no mechanism for it to support name-based virtual hosts (selection of resource by inspection of the Host header field). Any server that implements name-based virtual hosts ought to disable support for HTTP/0.9 . Most requests that appear to be HTTP/0.9 are, in fact, badly constructed HTTP/1.x requests caused by

2550-519: The Internet's 135,422 most popular websites have a secure implementation of HTTPS, However, despite TLS 1.3's release in 2018, adoption has been slow, with many still remaining on the older TLS 1.2 protocol. Most browsers display a warning if they receive an invalid certificate. Older browsers, when connecting to a site with an invalid certificate, would present the user with a dialog box asking whether they wanted to continue. Newer browsers display

2625-480: The LiteSpeed web server coming second. HTTP This is an accepted version of this page HTTP ( Hypertext Transfer Protocol ) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web , where hypertext documents include hyperlinks to other resources that

2700-479: The NPN extension to its TLS implementation. This has prevented SPDY inclusion in the latest .NET Framework versions. Since SPDY specification is being refined and HTTP/2 is expected to include SPDY implementation one could expect Microsoft to release support after HTTP/2 is finalized. As of May 2021, approximately 0.1% of all websites support SPDY, in part due to transition to HTTP/2 . In 2016, NGINX and Apache were

2775-445: The accessed website and protection of the privacy and integrity of the exchanged data while it is in transit. It protects against man-in-the-middle attacks , and the bidirectional block cipher encryption of communications between a client and server protects the communications against eavesdropping and tampering . The authentication aspect of HTTPS requires a trusted third party to sign server-side digital certificates . This

2850-648: The authority responds, telling the browser whether the certificate is still valid or not. The CA may also issue a CRL to tell people that these certificates are revoked. CRLs are no longer required by the CA/Browser forum, nevertheless, they are still widely used by the CAs. Most revocation statuses on the Internet disappear soon after the expiration of the certificates. SSL (Secure Sockets Layer) and TLS (Transport Layer Security) encryption can be configured in two modes: simple and mutual . In simple mode, authentication

2925-412: The client and the server. X.509 certificates are used to authenticate the server (and sometimes the client as well). As a consequence, certificate authorities and public key certificates are necessary to verify the relation between the certificate and its owner, as well as to generate, sign, and administer the validity of certificates. While this can be more beneficial than verifying the identities via

3000-444: The client. This prompted the development of a countermeasure in HTTP called HTTP Strict Transport Security . HTTPS has been shown to be vulnerable to a range of traffic analysis attacks. Traffic analysis attacks are a type of side-channel attack that relies on variations in the timing and size of traffic in order to infer properties about the encrypted traffic itself. Traffic analysis is possible because SSL/TLS encryption changes

3075-406: The communication is authenticated . This is the case with HTTP transactions over the Internet, where typically only the server is authenticated (by the client examining the server's certificate ). HTTPS creates a secure channel over an insecure network. This ensures reasonable protection from eavesdroppers and man-in-the-middle attacks , provided that adequate cipher suites are used and that

SPDY - Misplaced Pages Continue

3150-444: The connection is unencrypted or port 443 if the connection is encrypted, see also List of TCP and UDP port numbers ). In HTTP/2, a TCP/IP connection plus multiple protocol channels are used. In HTTP/3, the application transport protocol QUIC over UDP is used. Data is exchanged through a sequence of request–response messages which are exchanged by a session layer transport connection. An HTTP client initially tries to connect to

3225-470: The connection. Closing a connection is usually advertised in advance by using one or more HTTP headers in the last request/response message sent to server or client. In HTTP/0.9 , the TCP/IP connection is always closed after server response has been sent, so it is never persistent. HTTPS This is an accepted version of this page Hypertext Transfer Protocol Secure ( HTTPS ) is an extension of

3300-472: The contents of traffic, but has minimal impact on the size and timing of traffic. In May 2010, a research paper by researchers from Microsoft Research and Indiana University discovered that detailed sensitive user data can be inferred from side channels such as packet sizes. The researchers found that, despite HTTPS protection in several high-profile, top-of-the-line web applications in healthcare, taxation, investment, and web search, an eavesdropper could infer

3375-454: The development of HTTP/2, including both Mike Belshe and Roberto Peon. Chromium , Mozilla Firefox , Opera , Amazon Silk , Internet Explorer , and Safari expressed support for SPDY at the time. In February 2015, Google announced that following ratification of the HTTP/2 standard, support for SPDY would be deprecated, and that support for SPDY would be withdrawn. On May 15, 2015, HTTP/2

3450-477: The encrypted resource can be inferred by knowing only the intercepted request/response size. This allows an attacker to have access to the plaintext (the publicly available static content), and the encrypted text (the encrypted version of the static content), permitting a cryptographic attack . Because TLS operates at a protocol level below that of HTTP and has no knowledge of the higher-level protocols, TLS servers can only strictly present one certificate for

3525-416: The establishment of TCP connections presents considerable overhead, especially under high traffic conditions. HTTP/2 is a revision of previous HTTP/1.1 in order to maintain the same client–server model and the same protocol methods but with these differences in order: HTTP/2 communications therefore experience much less latency and, in most cases, even higher speeds than HTTP/1.1 communications. HTTP/3

3600-443: The first documented official version of HTTP was written as a plain document, less than 700 words long, and this version was named HTTP/0.9, which supported only GET method, allowing clients to only retrieve HTML documents from the server, but not supporting any other file formats or information upload. Since 1992, a new document was written to specify the evolution of the basic protocol towards its next full version. It supported both

3675-753: The framework of the Internet protocol suite . Its definition presumes an underlying and reliable transport layer protocol. In 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). HTTP resources are identified and located on

3750-439: The group developing SPDY stated publicly that it was working toward standardisation (available as an Internet Draft ). The first draft of HTTP/2 used SPDY as the working base for its specification draft and editing. The IETF working group for HTTPbis has released the draft of HTTP/2 . SPDY (draft-mbelshe-httpbis-spdy-00) was chosen as the starting point. Throughout the process, the core developers of SPDY have been involved in

3825-512: The group stopped its activity passing the technical problems to IETF. In 2007, the IETF HTTP Working Group (HTTP WG bis or HTTPbis) was restarted firstly to revise and clarify previous HTTP/1.1 specifications and secondly to write and refine future HTTP/2 specifications (named httpbis). In 2009, Google , a private company, announced that it had developed and tested a new HTTP binary protocol named SPDY . The implicit aim

SECTION 50

#1732780078359

3900-581: The headers that have not changed; those that must be sent are compressed. For use within HTTPS , SPDY requires the TLS extension Next Protocol Negotiation (NPN) or Application-Layer Protocol Negotiation (ALPN) thus browser and server support depends on the HTTPS library. OpenSSL 1.0.1 or greater introduces NPN. Patches to add NPN support have also been written for NSS and TLSLite. Security Support Provider Interface (SSPI) from Microsoft have not implemented

3975-575: The illnesses/medications/surgeries of the user, his/her family income, and investment secrets. The fact that most modern websites, including Google, Yahoo!, and Amazon, use HTTPS causes problems for many users trying to access public Wi-Fi hot spots, because a captive portal Wi-Fi hot spot login page fails to load if the user tries to open an HTTPS resource. Several websites, such as NeverSSL, guarantee that they will always remain accessible by HTTP. Netscape Communications created HTTPS in 1994 for its Netscape Navigator web browser. Originally, HTTPS

4050-417: The major providers of SPDY traffic. In 2015, NGINX 1.9.5 dropped SPDY support in favor of HTTP/2. Some Google services (e.g. Google Search , Gmail , and other SSL -enabled services) use SPDY when available. Google's ads are also served from SPDY-enabled servers. A brief history of SPDY support amongst major web players: According to W3Techs, as of May 2021, most SPDY-enabled websites use nginx, with

4125-458: The need to start to focus on a new HTTP/2 protocol (while finishing the revision of HTTP/1.1 specifications), maybe taking in consideration ideas and work done for SPDY. After a few months about what to do to develop a new version of HTTP, it was decided to derive it from SPDY. In May 2015, HTTP/2 was published as RFC   7540 and quickly adopted by all web browsers already supporting SPDY and more slowly by web servers. In June 2014,

4200-767: The network by Uniform Resource Locators (URLs), using the Uniform Resource Identifiers (URIs) schemes http and https . As defined in RFC   3986 , URIs are encoded as hyperlinks in HTML documents, so as to form interlinked hypertext documents. In HTTP/1.0 a separate TCP connection to the same server is made for every resource request. In HTTP/1.1 instead a TCP connection can be reused to make multiple resource requests (i.e. of HTML pages, frames, images, scripts , stylesheets , etc.). HTTP/1.1 communications therefore experience less latency as

4275-447: The new versions of browsers and servers was rapid. In March 1996, one web hosting company reported that over 40% of browsers in use on the Internet used the new HTTP/1.1 header "Host" to enable virtual hosting , and that by June 1996, 65% of all browsers accessing their servers were pre-standard HTTP/1.1 compliant. In January 1997, RFC   2068 was officially released as HTTP/1.1 specifications. In June 1999, RFC   2616

4350-486: The original, non-secure HTTP, primarily to protect page authenticity on all types of websites, secure accounts, and keep user communications, identity, and web browsing private. The Uniform Resource Identifier (URI) scheme HTTPS has identical usage syntax to the HTTP scheme. However, HTTPS signals the browser to use an added encryption layer of SSL/TLS to protect the traffic. SSL/TLS is especially suited for HTTP, since it can provide some protection even if only one side of

4425-811: The request and may also contain requested content in its message body. A web browser is an example of a user agent (UA). Other types of user agent include the indexing software used by search providers ( web crawlers ), voice browsers , mobile apps , and other software that accesses, consumes, or displays web content. HTTP is designed to permit intermediate network elements to improve or enable communications between clients and servers. High-traffic websites often benefit from web cache servers that deliver content on behalf of upstream servers to improve response time. Web browsers cache previously accessed web resources and reuse them, whenever possible, to reduce network traffic. HTTP proxy servers at private network boundaries can facilitate communication for clients without

4500-491: The secrecy of the private key has been compromised. Newer versions of popular browsers such as Firefox , Opera , and Internet Explorer on Windows Vista implement the Online Certificate Status Protocol (OCSP) to verify that this is not the case. The browser sends the certificate's serial number to the certificate authority or its delegate via OCSP (Online Certificate Status Protocol) and

4575-490: The server certificate is verified and trusted. Because HTTPS piggybacks HTTP entirely on top of TLS, the entirety of the underlying HTTP protocol can be encrypted. This includes the request's URL , query parameters, headers, and cookies (which often contain identifying information about the user). However, because website addresses and port numbers are necessarily part of the underlying TCP/IP protocols, HTTPS cannot protect their disclosure. In practice this means that even on

SECTION 60

#1732780078359

4650-417: The simple request method of the 0.9 version and the full GET request that included the client HTTP version. This was the first of the many unofficial HTTP/1.0 drafts that preceded the final work on HTTP/1.0. After having decided that new features of HTTP protocol were required and that they had to be fully documented as official RFCs , in early 1995 the HTTP Working Group (HTTP WG, led by Dave Raggett )

4725-520: The use of HTTPS security on all websites is becoming increasingly important regardless of the type of Internet connection being used. Even though metadata about individual pages that a user visits might not be considered sensitive, when aggregated it can reveal a lot about the user and compromise the user's privacy. Deploying HTTPS also allows the use of HTTP/2 and HTTP/3 (and their predecessors SPDY and QUIC ), which are new HTTP versions designed to reduce page load times, size, and latency. It

4800-450: The user can easily access, for example by a 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. That version was subsequently developed, eventually becoming the public 1.0. Development of early HTTP Requests for Comments (RFCs) started

4875-465: Was added to Cloudflare and Google Chrome first, and is also enabled in Firefox . 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). HTTP functions as a request–response protocol in the client–server model . A web browser , for example, may be

4950-503: Was already used by many web browsers and web servers. In early 1996 developers started to even include unofficial extensions of the HTTP/1.0 protocol (i.e. keep-alive connections, etc.) into their products by using drafts of the upcoming HTTP/1.1 specifications. Since early 1996, major web browsers and web server developers also started to implement new features specified by pre-standard HTTP/1.1 drafts specifications. End-user adoption of

5025-466: Was coined by Ted Nelson in 1965 in the Xanadu Project , which was in turn inspired by Vannevar Bush 's 1930s vision of the microfilm-based information retrieval and management " memex " system described in his 1945 essay " As We May Think ". Tim Berners-Lee and his team at CERN are credited with inventing the original HTTP, along with HTML and the associated technology for a web server and

5100-482: Was constituted with the aim to standardize and expand the protocol with extended operations, extended negotiation, richer meta-information, tied with a security protocol which became more efficient by adding additional methods and header fields . The HTTP WG planned to revise and publish new versions of the protocol as HTTP/1.0 and HTTP/1.1 within 1995, but, because of the many revisions, that timeline lasted much more than one year. The HTTP WG planned also to specify

5175-476: Was first discussed when it became apparent that SPDY was gaining traction with implementers (like Mozilla and nginx), and was showing significant improvements over HTTP/1.x. After a call for proposals and a selection process, SPDY was chosen as the basis for HTTP/2. Since then, there have been a number of changes, based on discussion in the Working Group and feedback from implementers. As of July 2012,

5250-425: Was historically an expensive operation, which meant fully authenticated HTTPS connections were usually found only on secured payment transaction services and other secured corporate information systems on the World Wide Web . In 2016, a campaign by the Electronic Frontier Foundation with the support of web browser developers led to the protocol becoming more prevalent. HTTPS is now used more often by web users than

5325-476: Was officially ratified as RFC   7540 . On February 11, 2016, Google announced that Chrome would no longer support SPDY after May 15, 2016, the one-year anniversary of RFC   7540 which standardized HTTP/2 . On January 25, 2019, Apple announced that SPDY would be deprecated in favor of HTTP/2, and would be removed in future releases. Google removed SPDY support in Google Chrome 51 which

5400-456: Was presented at the 2009 Blackhat Conference . This type of attack defeats the security provided by HTTPS by changing the https: link into an http: link, taking advantage of the fact that few Internet users actually type "https" into their browser interface: they get to a secure site by clicking on a link, and thus are fooled into thinking that they are using HTTPS when in fact they are using HTTP. The attacker then communicates in clear with

5475-457: Was released in 2016. Mozilla removed it in Firefox 50. Apple has deprecated the technology in macOS 10.14.4 and iOS 12.2. SPDY is a versioned protocol. SPDY control frames contain 15 dedicated bits to indicate the version of protocol used for the current session. The goal of SPDY is to reduce web page load time. This is achieved by prioritizing and multiplexing the transfer of web page subresources so that only one connection per client

5550-433: Was released to include all improvements and updates based on previous (obsolete) HTTP/1.1 specifications. Resuming the old 1995 plan of previous HTTP Working Group, in 1997 an HTTP-NG Working Group was formed to develop a new HTTP protocol named HTTP-NG (HTTP New Generation). A few proposals / drafts were produced for the new protocol to use multiplexing of HTTP transactions inside a single TCP/IP connection, but in 1999,

5625-463: Was to greatly speed up web traffic (specially between future web browsers and its servers). SPDY was indeed much faster than HTTP/1.1 in many tests and so it was quickly adopted by Chromium and then by other major web browsers. Some of the ideas about multiplexing HTTP streams over a single TCP/IP connection were taken from various sources, including the work of W3C HTTP-NG Working Group. In January–March 2012, HTTP Working Group (HTTPbis) announced

#358641