[译]关于 HTTP 您需要了解的一切
HTTP 是每个 Web 开发人员都应该了解的协议,因为它为整个 Web 提供动力。了解 HTTP 当然可以帮助您开发更好的应用程序。 在本文中,我将讨论 HTTP 是什么、它是如何产生的、它今天的状况以及我们是如何走到这一步的 什么是 HTTP? 首先,什么是 HTTP? HTTP 是基于 TCP/IP 的应用层通信协议,它标准化了客户端和服务器之间的通信方式。它定义了如何通过互联网请求和传输内容。通过应用层协议,我的意思是它只是一个标准化主机(客户端和服务器)通信方式的抽象层。 HTTP 本身依赖于 TCP/IP 来获取客户端和服务器之间的请求和响应。 默认情况下,使用 TCP 端口 80,但也可以使用其他端口。然而,HTTPS 使用端口 443。 HTTP/0.9 - One Liner (1991) HTTP 的第一个有记录的版本是 1991 年提出的 HTTP/0.9。它是有史以来最简单的协议;有一个名为 GET 的方法。如果客户端必须访问服务器上的某个网页,它会发出如下所示的简单请求 GET /index.html 服务器的响应如下所示 (response body) (connection closed) 也就是说,服务器将收到请求,回复 HTML 作为响应,一旦内容传输完毕,连接就会关闭。有 无标题 GET 是唯一允许的方法 响应必须是 HTML 正如您所看到的,该协议实际上只不过是未来的踏脚石。 HTTP/1.0 - 1996 1996 年,HTTP 的下一个版本(即 HTTP/1.0)得到了发展,比原始版本有了很大的改进。与仅针对 HTML 响应设计的 HTTP/0.9 不同,HTTP/1.0 现在也可以处理其他响应格式,即图像、视频文件、纯文本或任何其他内容类型。它添加了更多方法(即 POST 和 HEAD)、更改了请求/响应格式、将 HTTP 标头添加到请求和响应中、添加了状态代码来标识响应、引入了字符集支持、多部分类型、授权、缓存、内容编码等都包括在内。 以下是示例 HTTP/1.0 请求和响应的样子: GET / HTTP/1.0 Host: cs.fyi User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) Accept: */* 正如您所看到的,除了请求之外,客户端还发送了它的个人信息、所需的响应类型等。而在 HTTP/0.9 中,客户端永远无法发送此类信息,因为没有标头。 对上述请求的响应示例可能如下所示 HTTP/1.0 200 OK Content-Type: text/plain Content-Length: 137582 Expires: Thu, 05 Dec 1997 16:00:00 GMT Last-Modified: Wed, 5 August 1996 15:55:28 GMT Server: Apache 0....