Skip to content

Commit

Permalink
chore(http): add missing See also sections, minor fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
bsmth committed Dec 11, 2024
1 parent a3fa3aa commit 3196dd4
Show file tree
Hide file tree
Showing 18 changed files with 149 additions and 12 deletions.
2 changes: 1 addition & 1 deletion files/en-us/glossary/web_performance/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ Objectively, it is measurable time, in milliseconds, it takes for the web page o

## See also

- [Learn about web performance](/en-US/docs/Learn/Performance)
- [Web performance](/en-US/docs/Web/Performance) guides
- Related glossary terms:
- {{Glossary("Perceived performance")}}
Original file line number Diff line number Diff line change
Expand Up @@ -274,3 +274,9 @@ In summary, we recommend looking for the string `Mobi` anywhere in the User Agen
> [!NOTE]
> If the device is large enough that it's not marked with `Mobi`, you should serve your desktop site (which, as a best practice, should support touch input anyway, as more desktop machines are appearing with touchscreens).
## See also
- [CSS Media Queries](/en-US/docs/Web/CSS/CSS_media_queries)
- [HTTP Client hints](/en-US/docs/Web/HTTP/Client_hints)
- [Implementing feature detection](/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Feature_detection)
12 changes: 12 additions & 0 deletions files/en-us/web/http/compression/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,15 @@ sequenceDiagram
In practice, hop-by-hop compression is transparent for the server and the client, and is rarely used. {{HTTPHeader("TE")}} and {{HTTPHeader("Transfer-Encoding")}} are mostly used to send a response by chunks, allowing to start transmitting a resource without knowing its length.

Note that using {{HTTPHeader("Transfer-Encoding")}} and compression at the hop level is so rare that most servers, like Apache, Nginx, or IIS, have no easy way to configure it. Such configuration usually happens at the proxy level.

## See also

- [Caching](/en-US/docs/Web/HTTP/Caching)
- {{HTTPHeader("Vary")}} header
- Glossary terms:
- {{glossary("Brotli compression")}}
- {{Glossary("Gzip compression")}}
- {{glossary("Lossless compression")}}
- {{glossary("Lossy compression")}}
- {{Glossary("Zstandard compression")}}
- {{glossary('Web performance')}}
14 changes: 14 additions & 0 deletions files/en-us/web/http/connection_management_in_http_1.x/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,17 @@ If the server wishes a faster website or application response, it is possible fo
## Conclusion

Improved connection management allows considerable boosting of performance in HTTP. With HTTP/1.1 or HTTP/1.0, using a persistent connection – at least until it becomes idle – leads to the best performance. However, the failure of pipelining has lead to designing superior connection management models, which have been incorporated into HTTP/2.

## See also

- [Evolution of HTTP](/en-US/docs/Web/HTTP/Evolution_of_HTTP)
- [Protocol upgrade mechanism](/en-US/docs/Web/HTTP/Protocol_upgrade_mechanism)
- Glossary terms:
- {{glossary('HTTP')}}
- {{glossary('HTTP_2', 'HTTP/2')}}
- {{glossary('QUIC')}}
- {{glossary('Round Trip Time', 'Round Trip Time (RTT)')}}
- {{glossary('TCP slow start')}}
- {{glossary('TLS')}}
- {{glossary('TCP', 'Transmission Control Protocol (TCP)')}}
- {{glossary('Web performance')}}
5 changes: 5 additions & 0 deletions files/en-us/web/http/content_negotiation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,8 @@ HTTP allows another negotiation type: _agent-driven negotiation_ or _reactive ne
![A client requesting a URL with headers denoting a preference for content types. The server has multiple resources represented by the URL and sends back multiple responses so the client may choose a body with a preferred compression algorithms applied.](httpnego3.png)

Unfortunately, the HTTP standard doesn't specify the format of the page for choosing between the available resources, which prevents the process from being automated. Besides falling back to the _server-driven negotiation_, this method is almost always used with scripting, especially with JavaScript redirection: after having checked for the negotiation criteria, the script performs the redirection. A second problem is that one more request is needed to fetch the real resource, slowing the availability of the resource to the user.

## See also

- [Caching](/en-US/docs/Web/HTTP/Caching)
- {{HTTPHeader("Vary")}} header
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,8 @@ When a CSS stylesheet is requested, via the `<link rel="stylesheet">` HTML eleme
| Konqueror 4.6 | `text/css,*/*;q=0.1` |

\[1] See [bug 170789](https://bugzil.la/170789).

## See also

- [Content negotiation](/en-US/docs/Web/HTTP/Content_negotiation)
- {{HTTPHeader("Accept")}}, {{HTTPHeader("Vary")}} headers
5 changes: 5 additions & 0 deletions files/en-us/web/http/csp/errors/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,8 @@ When you see any of the following messages logged in the browser devtools consol
- Duplicate %1$S directives detected. All but the first instance will be ignored.
- Directive '%1$S' has been deprecated. Please use directive 'worker-src' to control workers, or directive 'frame-src' to control frames respectively.
- Couldn't parse invalid sandbox flag '%1$S'

## See also

- [Content Security Policy (CSP)](/en-US/docs/Web/HTTP/CSP) guide
- {{HTTPHeader("Content-Security-Policy")}} HTTP header
14 changes: 14 additions & 0 deletions files/en-us/web/http/evolution_of_http/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,3 +196,17 @@ The next major version of HTTP, HTTP/3 has the same semantics as earlier version
QUIC is designed to provide much lower latency for HTTP connections. Like HTTP/2, it is a multiplexed protocol, but HTTP/2 runs over a single TCP connection, so packet loss detection and retransmission handled at the TCP layer can block all streams. QUIC runs multiple streams over {{Glossary("UDP")}} and implements packet loss detection and retransmission independently for each stream, so that if an error occurs, only the stream with data in that packet is blocked.

Defined in {{RFC("9114")}}, [HTTP/3 is supported by most major browsers](https://caniuse.com/http3) including Chromium (and its variants such as Chrome and Edge) and Firefox.

## See also

- [Connection management in HTTP/1.x](/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x)
- [Protocol upgrade mechanism](/en-US/docs/Web/HTTP/Protocol_upgrade_mechanism)
- [HTTP resources and specifications](/en-US/docs/Web/HTTP/Resources_and_specifications)
- Glossary terms:
- {{glossary('HTTP')}}
- {{glossary('HTTP_2', 'HTTP/2')}}
- {{glossary('QUIC')}}
- {{glossary('Round Trip Time', 'Round Trip Time (RTT)')}}
- {{glossary('TCP slow start')}}
- {{glossary('TCP', 'Transmission Control Protocol (TCP)')}}
- {{glossary('Web performance')}}
8 changes: 8 additions & 0 deletions files/en-us/web/http/headers/expect-ct/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,11 @@ Builds of Chrome are designed to stop enforcing the `Expect-CT` policy 10 weeks
## Browser compatibility

{{Compat}}

## See also

- [Secure Contexts](/en-US/docs/Web/Security/Secure_Contexts)
- Glossary terms:
- {{glossary('TLS', 'Transport Layer Security (TLS)')}}
- {{glossary('SSL', 'Secure Sockets Layer (SSL)')}}
- {{glossary('HTTPS')}}
13 changes: 13 additions & 0 deletions files/en-us/web/http/messages/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -339,3 +339,16 @@ HTTP/3 retains the same core HTTP semantics, so features like request methods, s
If you understand HTTP/1.1's semantics, you already have a solid foundation for grasping HTTP/2 and HTTP/3.
The main difference lies in **how** these semantics are implemented at the transport level.
By following the examples and concepts in this guide, you should now feel equipped to work with HTTP and understand the meaning of messages, and how applications use HTTP to send and receive data.

## See also

- [Evolution of HTTP](/en-US/docs/Web/HTTP/Evolution_of_HTTP)
- [Protocol upgrade mechanism](/en-US/docs/Web/HTTP/Protocol_upgrade_mechanism)
- Glossary terms:
- {{glossary('HTTP')}}
- {{glossary('HTTP_2', 'HTTP/2')}}
- {{glossary('QUIC')}}
- {{glossary('Round Trip Time', 'Round Trip Time (RTT)')}}
- {{glossary('TCP slow start')}}
- {{glossary('TLS')}}
- {{glossary('TCP', 'Transmission Control Protocol (TCP)')}}
6 changes: 6 additions & 0 deletions files/en-us/web/http/mime_types/common_types/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,9 @@ IANA is the official registry of MIME media types and maintains a [list of all t
| `.3gp` | [3GPP](https://en.wikipedia.org/wiki/3GP_and_3G2) audio/video container | `video/3gpp`; `audio/3gpp` if it doesn't contain video |
| `.3g2` | [3GPP2](https://en.wikipedia.org/wiki/3GP_and_3G2) audio/video container | `video/3gpp2`; `audio/3gpp2` if it doesn't contain video |
| `.7z` | [7-zip](https://en.wikipedia.org/wiki/7-Zip) archive | `application/x-7z-compressed` |

## See also

- [MIME sniffing](/en-US/docs/Web/HTTP/MIME_types#mime_sniffing)
- {{HTTPHeader("X-Content-Type-Options")}}
- {{HTTPHeader("Content-Type")}}
5 changes: 5 additions & 0 deletions files/en-us/web/http/network_error_logging/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,3 +142,8 @@ The type of the network error may be one of the following pre-defined values fro
## Browser compatibility

{{Compat}}

## See also

- {{HTTPHeader("NEL")}}, {{HTTPHeader("Report-To")}} headers
- [Reporting API](/en-US/docs/Web/API/Reporting_API)
13 changes: 13 additions & 0 deletions files/en-us/web/http/overview/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,3 +233,16 @@ The client-server structure, combined with the ability to add headers, allows HT

Though HTTP/2 adds some complexity by embedding HTTP messages in frames to improve performance, the basic structure of messages has stayed the same since HTTP/1.0.
Session flow remains basic, allowing it to be investigated and debugged with a [HTTP network monitor](https://firefox-source-docs.mozilla.org/devtools-user/network_monitor/index.html).

## See also

- [Evolution of HTTP](/en-US/docs/Web/HTTP/Evolution_of_HTTP)
- [Protocol upgrade mechanism](/en-US/docs/Web/HTTP/Protocol_upgrade_mechanism)
- Glossary terms:
- {{glossary('HTTP')}}
- {{glossary('HTTP_2', 'HTTP/2')}}
- {{glossary('QUIC')}}
- {{glossary('Round Trip Time', 'Round Trip Time (RTT)')}}
- {{glossary('TCP slow start')}}
- {{glossary('TLS')}}
- {{glossary('TCP', 'Transmission Control Protocol (TCP)')}}
25 changes: 18 additions & 7 deletions files/en-us/web/http/protocol_upgrade_mechanism/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
title: Protocol upgrade mechanism
slug: Web/HTTP/Protocol_upgrade_mechanism
page-type: guide
spec-urls:
- https://www.rfc-editor.org/rfc/rfc7230
- https://www.rfc-editor.org/rfc/rfc7540
- https://www.rfc-editor.org/rfc/rfc6455
---

{{HTTPSidebar}}
Expand Down Expand Up @@ -141,12 +145,19 @@ Sec-WebSocket-Accept: hash
- `hash`
- : If a {{HTTPHeader("Sec-WebSocket-Key")}} header was provided, the value of this header is computed by taking the value of the key, concatenating the string "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" to it, taking the [SHA-1](https://en.wikipedia.org/wiki/SHA-1) hash of that concatenated string, resulting in a 20-byte value. That value is then [base64](/en-US/docs/Glossary/Base64) encoded to obtain the value of this property.

## References
## Specifications

- [WebSocket API](/en-US/docs/Web/API/WebSocket)
- [HTTP](/en-US/docs/Web/HTTP)
- Specifications and RFCs:
{{specifications}}

## See also

- {{RFC(7230)}}
- {{RFC(6455)}}
- {{RFC(7540)}}
- [WebSocket API](/en-US/docs/Web/API/WebSocket)
- [Evolution of HTTP](/en-US/docs/Web/HTTP/Evolution_of_HTTP)
- Glossary terms:
- {{glossary('HTTP')}}
- {{glossary('HTTP_2', 'HTTP/2')}}
- {{glossary('QUIC')}}
- {{glossary('Round Trip Time', 'Round Trip Time (RTT)')}}
- {{glossary('TCP slow start')}}
- {{glossary('TLS')}}
- {{glossary('TCP', 'Transmission Control Protocol (TCP)')}}
7 changes: 3 additions & 4 deletions files/en-us/web/http/proxy_servers_and_tunneling/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,8 @@ function FindProxyForURL(url, host) {
}
```

See [Proxy Auto-Configuration (PAC)](/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file) for more examples.

## See also

- {{HTTPMethod("CONNECT")}}
- [Proxy server on Wikipedia](https://en.wikipedia.org/wiki/Proxy_server)
- [Proxy Auto-Configuration (PAC) file](/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file)
- {{HTTPMethod("CONNECT")}} method
- {{glossary("Proxy server")}}
Original file line number Diff line number Diff line change
Expand Up @@ -719,3 +719,9 @@ Proxy auto-config was introduced into Netscape Navigator 2.0 in the late 1990s,
The most "original" implementation of PAC and its JavaScript libraries is, therefore, `nsProxyAutoConfig.js` found in early versions of Firefox. These utilities are found in many other open-source systems including [Chromium](https://source.chromium.org/chromium/chromium/src/+/main:services/proxy_resolver/pac_js_library.h). Firefox later integrated the file into [`ProxyAutoConfig.cpp`](https://searchfox.org/mozilla-central/source/netwerk/base/ProxyAutoConfig.cpp) as a C++ string literal. To extract it into its own file, it suffices to copy the chunk into JavaScript with a `console.log` directive to print it.

Microsoft in general made its own implementation. There used to be [some problems with their libraries](https://en.wikipedia.org/wiki/Proxy_auto-config#Old_Microsoft_problems), but most are resolved by now. They have defined [some new "Ex" suffixed functions](https://learn.microsoft.com/en-us/windows/win32/winhttp/ipv6-extensions-to-navigator-auto-config-file-format) around the address handling parts to support IPv6. The feature is supported by Chromium, but not yet by Firefox ([bugzilla #558253](https://bugzil.la/558253)).

## See also

- {{glossary("Proxy server")}}
- [MIME types (IANA media types)](/en-US/docs/Web/HTTP/MIME_types)
- [Automatic proxy HTTP server configuration in web browsers](https://jdebp.uk/FGA/web-browser-auto-proxy-configuration.html)
6 changes: 6 additions & 0 deletions files/en-us/web/http/redirections/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -232,3 +232,9 @@ Sometimes, the server won't detect it: a redirection loop can spread over severa
In both cases, the user can't do much (unless corruption is happening on their side, like a mismatch of cache or cookies).

It is important to avoid redirection loops, as they completely break the user experience.

## See also

- [3XX redirection](/en-US/docs/Web/HTTP/Status#redirection_messages) response statuses
- {{HTTPHeader("Location")}} header
- {{domxref("window.location")}} property
9 changes: 9 additions & 0 deletions files/en-us/web/http/resources_and_specifications/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,12 @@ HTTP was first specified in the early 1990s. Designed with extensibility in mind
| [Reporting API](https://wicg.github.io/reporting/) | `Report-To` header | Draft |
| [Draft spec](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-expect-ct-01) | Expect-CT Extension for HTTP | IETF Draft |
| {{rfc(7486)}} | HTTP Origin-Bound Auth (HOBA) | Experimental |

## See also

- [Evolution of HTTP](/en-US/docs/Web/HTTP/Evolution_of_HTTP)
- Glossary terms:
- {{glossary('HTTP')}}
- {{glossary('HTTP_2', 'HTTP/2')}}
- {{glossary('QUIC')}}
- {{glossary('TCP', 'Transmission Control Protocol (TCP)')}}

0 comments on commit 3196dd4

Please sign in to comment.