超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议。它被设计用于Web浏览器和Web服务器之间的通信,但它也可以用于其他目的。 HTTP遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待它收到服务器端响应。 HTTP是无状态协议,意味着服务器不会在两个请求之间保留任何数据(状态)。虽然通常基于TCP / IP层,但可以在任何可靠的传输层上使用;也就是说,一个不会静默丢失消息的协议,如UDP。
教程
通过以下指南和教程来学习如何使用 HTTP。
- HTTP 概述
- 介绍了客户端-服务器端协议的基本特征:它能够做什么以及它的设计意图。
- HTTP 缓存
- 缓存对高速 Web 站点来说是非常之重要的。这篇文章阐述了不同种类的缓存以及如何配置 HTTP 首部来控制它们。
- HTTP Cookie
- RFC 6265 定义了 cookies 是怎样工作的。 当接收到一个 HTTP请求时,服务器可以在响应中发送一个 Set-Cookie 首部字段。接着,对于同一台服务器发起的每一个请求,客户端都会在 HTTP 请求头中以字段 Cookie 的形式将 cookie 的值发送过去。 此外,还可以指定一个过期时间,也可以指定一个特定的域名和路径中使用。
- HTTP 访问控制(CORS)
- 跨站 HTTP 请求就是从另一个域名,而不是资源所在的域名发起的 HTTP 请求。举例来说,在域名 A (
http://domaina.example/
) 的 HTML 页面上使用img
元素 (<img src="http://domainb.foo/image.jpg">
) 来请求域名 B (http://domainb.foo/) 上的图片资源。这在当前的 web 页面上很常见 —— 页面通过跨域规则加载 CSS 样式表,图片,脚本以及其他资源。 - HTTP 的演变
- 简单描述了从早期版本的 HTTP 到现在的 HTTP/2 以及未来的 HTTP 这个过程中发生的变更。
- Mozilla web 安全引导
- 一系列用于帮助运营团队创建安全的 Web 应用程序的提示。
- HTTP 消息
- 描述了 HTTP/1.x 和 HTTP/2.x 中不同种类消息的类型和结构。
- 典型的 HTTP 会话
- 展现并解释了一个常见的 HTTP 会话流程。
- HTTP/1.x中的连接管理
- 描述了在 HTTP/1.x 中的三种连接管理模型,以及它们的优势和劣势。
参考
浏览详细的 HTTP 参考文档。
- HTTP 首部
- HTTP 消息首部被用来描述资源信息,或是客户端和服务器的行为。自定义的专有首部可以加上 'X-' 前缀; 其他的可以在 IANA registry 找到,其原始定义在 RFC 4229。IANA 同时也维护着一份 registry of proposed new HTTP message headers。
- HTTP 请求方法
- 可以使用 HTTP:
GET
,POST
方法来完成不同操作,同时也有一些其他的方法,如OPTIONS
,DELETE
和TRACE
。 - HTTP 状态返回码
- HTTP 状态返回码用来表示指定的 HTTP 请求是否成功完成。响应被分为 5 种类型: 消息型响应,成功响应,重定向,客户端错误和服务器错误。
- CSP 指令
Content-Security-Policy
响应头字段允许站点的管理者控制页面上哪些资源能够被用户代理程序加载。除了少数例外,此策略主要涉及源服务器和脚本终端。
工具与资源
有助于理解和调试 HTTP 连接的工具和资源。
- Firefox 开发者工具
- 网络监视器
- Mozilla Observatory
-
一个旨在帮助开发人员,系统管理员和安全专业人员安全地配置其网站的项目。
- RedBot
- 检查 Cache 相关 HTTP 首部的工具.
- 浏览器的工作原理
- 一篇非常全面的关于浏览器内部实现与通过 HTTP 协议的请求流的文章。是所有 web 开发者的必读内容。