HTTP 指南

We’d love to hear your thoughts on the next set of proposals for the JavaScript language. You can find a description of the proposals here.
Please take two minutes to fill out our short survey.

本页列出了一些 HTTP 指南。它们旨在帮助你了解使用 HTTP 协议可以做哪些事情。

HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据。浏览器会存储 cookie 并在下次向同一服务器再发起请求时携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器——如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。

HTTP 协议中的数据压缩

数据压缩是提高 Web 站点性能的一种重要手段。对于有些文件来说,高达 70% 的压缩比率可以大大减低对于带宽的需求。随着时间的推移,压缩算法的效率也越来越高,同时也有新的压缩算法被发明出来,应用在客户端与服务器端。

HTTP 客户端提示(Client Hint)

客户端提示是一组 HTTP 请求标头字段,服务器可以主动地用它来获取关于设备、网络、用户以及用户代理指定的首选项的信息。然后,服务器可以根据客户端选择提供的信息来确定发送哪些资源。

HTTP 条件请求

在 HTTP 中有一个条件请求的概念,在这类请求中,请求的结果,甚至请求成功的状态,都会随着验证器与受影响资源的比较结果的变化而变化。这类请求可以用来验证缓存的有效性,省去不必要的控制手段,以及验证文件的完整性,例如在断点续传的场景下或者在上传或者修改服务器端的文件的时候避免更新丢失问题。

HTTP 概述

HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础,同时,也是一种客户端—服务器(client-server)协议,也就是说,请求是由接受方——通常是 Web 浏览器——发起的。完整网页文档通常由文本、布局描述、图片、视频、脚本等资源构成。

HTTP 消息

HTTP 消息是服务器和客户端之间交换数据的方式。有两种类型的消息:请求(request)——由客户端发送用来触发一个服务器上的动作;响应(response)——来自服务器的应答。

HTTP 的发展

HTTP(HyperText Transfer Protocol)是万维网(World Wide Web)的基础协议。自 Tim Berners-Lee 博士和他的团队在 1989-1991 年间创造出它以来,HTTP 已经发生了太多的变化,在保持协议简单性的同时,不断扩展其灵活性。如今,HTTP 已经从一个只在实验室之间交换文件的早期协议进化到了可以传输图片,高分辨率视频和 3D 效果的现代复杂互联网协议。

HTTP 的重定向

URL 重定向(也称为 URL 转发)是一种为页面、表单或者整个 Web 站点/应用提供多个 URL 地址的技术。HTTP 对此操作有一种特殊类型的响应,称为 HTTP 重定向(HTTP redirect)。

HTTP 缓存

HTTP 缓存会存储与请求关联的响应,并将存储的响应复用于后续请求。

HTTP 范围请求

HTTP 的 Range 请求使客户端能够要求服务器仅向其回传 HTTP 消息的一部分。范围请求对于支持随机访问的媒体播放器、明确只需大型文件某部分的数据处理工具,以及允许用户暂停及恢复下载的下载管理器等客户端尤其有用。

HTTP 身份验证

HTTP 提供一个用于权限控制和认证的通用框架。本页介绍了通用的 HTTP 认证框架,并且展示了如何通过 HTTP 的“Basic”模式限制对你服务器的访问。

HTTP/1.x 的连接管理

连接管理是一个 HTTP 的关键话题:打开和保持连接在很大程度上影响着网站和 Web 应用程序的性能。在 HTTP/1.x 里有多种模型:短连接长连接HTTP 流水线

MIME 类型(IANA 媒体类型)

媒体类型(也通常称为多用途互联网邮件扩展MIME 类型)是一种标准,用来表示文档、文件或一组数据的性质和格式。它在 IETF 的 6838 中进行了定义和标准化。

代理服务器与隧道

当访问不同的网站时,代理服务器和 HTTP 隧道为访问万维网上的内容提供了便利。代理可以在用户的本地计算机上,也可以在用户计算机和互联网上的目标服务器之间的任何地方。本页概述了有关代理的一些基本知识,并介绍了一些配置选项。

使用用户代理字段进行浏览器检测

为不同浏览器提供不同的网页或服务通常是一个坏主意。互联网的本意是让任何人都可以访问,无论他们使用哪个浏览器或设备。有一些方法可以根据功能的可用性而不是针对特定的浏览器来开发你的网站以逐步增强自身。

典型的 HTTP 会话

在像 HTTP 这样的客户端——服务器(Client-Server)协议中,会话分为三个阶段:

内容协商

HTTP 协议中,**内容协商**是一种机制,用于为同一 URI 提供资源不同的表示形式,以帮助用户代理指定最适合用户的表示形式(例如,哪种文档语言、哪种图片格式或者哪种内容编码)。

内容安全策略(CSP)

内容安全策略(CSP)是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本(XSS)和数据注入攻击等。无论是数据盗取、网站内容污染还是恶意软件分发,这些攻击都是主要的手段。

协议升级机制

HTTP/1.1 协议提供了一种使用 Upgrade 标头字段的特殊机制,这一机制允许将一个已建立的连接升级成新的、不相容的协议。

权限策略

权限策略为网站开发人员提供了明确声明哪些特性可以或不可以在网站上使用的机制。定义一组“策略”,限制网站代码可以访问哪些 API,或者修改浏览器对某些特性的默认行为。这使你能够执行最佳做法(即使是在代码库的发展过程中),也可以更安全地编排第三方内容。

跨源资源共享(CORS)

跨源资源共享(CORS,或通俗地译为跨域资源共享)是一种基于 HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其他源(域、协议或端口),使得浏览器允许这些源访问加载自己的资源。跨源资源共享还通过一种机制来检查服务器是否会允许要发送的真实请求,该机制通过浏览器发起一个到服务器托管的跨源资源的“预检”请求。在预检中,浏览器发送的头中标示有 HTTP 方法和真实请求中会用到的头。