Notes on HTTP-the Definitive Guide

Caching
  • HTTP allows a cache to send a “conditional GET” to the origin server, asking the server to send back an object body only if the document is different from the copy currently in the cache: If-Modified-Since, If-None-Match
  • But, despite some subtle details, the basic workings of a web cache are mostly simple- Receiving, Parsing, Lookup, Freshness Check, Response creation, Sending and Logging.
  • HTTP/1.1 supports “weak validators,” which allow the server to claim “good enough” equivalence even if the contents have changed slightly.
  • Controlling Cachability: in decreasing order of priority, the server can:
    • Attach a Cache-Control: no-store header to the response.
    • Attach a Cache-Control: no-cache header to the response.
    • Attach a Cache-Control: must-revalidate header to the response.
    • Attach a Cache-Control: max-age header to the response.
    • Attach an Expires date header to the response.
    • Attach no expiration information, letting the cache determine its own heuristic expiration date.
  • If the response doesn’t contain either a Cache-Control: max-age header or an Expires header, the cache may compute a heuristic maximum age.
  • Clients use Cache-Control request headers to tighten or loosen expiration constraints.
  • The HTTP specification provides a detailed, but slightly obscure and often confusing, algorithm for computing document aging and cache freshness.
  • RFC 2227(“Simple Hit-Metering and Usage-Limiting for HTTP”): servers get periodic updates from caches about the number of times cached documents were hit. In addition, the server can control how many times documents can be served from cache, or a wall clock timeout, before the cache must report back to the server.

Gateways

  • Gateways are described by their client- and server-side protocols, separated by a slash: <client-protocol>/<server-protocol>
  • Early web servers were fairly simple creations, and the simple approach that was taken for implementing an interface for gateways has stuck to this day.

Tunnel

  • Web tunnels let you send non-HTTP traffic through HTTP connections, allowing other protocols to piggyback on top of HTTP.
  • Web tunnels are established using HTTP's CONNECT method. But the HTTP/1.1 specification reserves the CONNECT method but does not describe its function.


猜你喜欢

转载自blog.csdn.net/wwwpcstarcomcn/article/details/31760321