这篇文章需要技术复核。如何帮忙。
这篇文章需要文法复核。如何帮忙。
超文本传输协议 (HTTP) 是一种传输如 HTML 等超媒体文件的应用层协议。起初设计它的目的主要用于 Web 浏览器与 Web 服务器之间的通信,当然现在它还可以用做其它目的。该协议遵循客户端-服务端的模型,客户端打开连接,发送一个请求,然后等待接收服务器端的响应。HTTP 协议也是一个无状态协议,这就意味着服务并不能保留两个请求的之间的数据(状态)。尽管 HTTP 协议通常是基于 TCP/IP 的, 但它实际上可以在任何可靠的传输层协议上使用,所谓可靠的协议就是指那些不会隐式丢弃消息的协议。
教程
通过以下指南和教程来学习如何使用 HTTP。
- HTTP 概述
- 介绍了客户-服务器端协议的基本特征:它能够做什么以及它的设计意图。
- HTTP 演变
- 简单描述了 HTTP 协议从早期版本到现在的 HTTP/2 以及更新版本的发展过程中所发生的变化。
- HTTP 消息
- 描述了 HTTP/1.x 和 HTTP/2.x 中不同种类消息的类型和结构。
- 一个典型的 HTTP 会话
- 展现并解释了一个常见的 HTTP 会话流程。
- HTTP/1.x中的连接管理
- 描述了在HTTP/1.x中的三种连接管理模型,以及它们的优势和劣势。
- HTTP Cache
- 缓存是搭建高性能网站的主要工具。这篇文章阐述了不同种类的缓存以及如何配置 HTTP 首部来控制它们。
- HTTP Cookie
- RFC 6265 定义了 cookies 是怎样工作的。 当接收到一个 HTTP请求时,服务器可以在响应中发送一个 Set-Cookie 首部字段。接着,对于同一台服务器发起的每一个请求,客户端都会在 HTTP 请求头中以字段 Cookie 的形式将 cookie 的值发送过去。 此外,还可以指定一个过期时间。cookie 也可以被限制于指定的域名和路径中使用。
- HTTP 访问控制(CORS)
- 跨域 HTTP 请求就是从另一个域名, 而不是资源所在的域名发起的 HTTP 请求. 举例来说, 在域名 A (
https://domaina.example/
) 的 HTML 页面上使用img
元素 (<img src="https://domainb.foo/image.jpg">
) 来请求域名 B (https://domainb.foo/) 上的图片资源.这在当前的 web 页面上很常见 —— 页面通过跨域规则加载 CSS 样式表, 图片, 脚本以及其他资源. - 控制DNS预读取
- Firefox 和大多数其他现代浏览器都提供了 DNS 预读取特性. 即对于用户可能点击的链接, 或文档中引用的图片, CSS 和 JavaScript 脚本, 浏览器会主动获取它们的域名解析消息. 这种预读取是在后台进行的, 因此当真正请求这些资源时, 其 DNS 信息往往已经解析完成了. 这会降低用户点击链接等操作时的延迟.
参考
浏览详细的 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 种类型: 消息型响应, 成功响应, 重定向, 客户端错误和服务器错误.
工具与资源
使用和调试你的 HTTP 连接很有用的工具。
- Firefox 开发者工具
- 网络监视器
- RedBot
- 一个检查 Cache 相关的 HTTP 首部的工具.