1. 什么是HTTP?

HTTP(HyperText Transfer Protocol,超文本传输协议)是用于在计算机之间传输超文本(如网页、图片、视频等)的应用层协议。它是互联网数据通信的基础,定义了客户端(如浏览器)和服务器之间的通信规则。

2. HTTP名称的拆解

HTTP的名称可分为三部分:

协议(Protocol)

计算机世界的“约定”,规范了通信双方(如浏览器和服务器)的行为。

例如:定义如何发起请求、如何响应、错误处理方式等。

传输(Transfer)

数据在两点(客户端↔服务器)之间双向传输。

允许中间经过代理、网关等中转节点。

超文本(HyperText)

超越普通文本的内容,包含文字、图片、链接、视频等。

典型例子:HTML(通过超链接跳转的混合内容)。

3. HTTP的核心特点

无状态:默认不记录之前的请求(需借助Cookie/Session维持状态)。

明文传输:数据未加密(HTTPS通过SSL/TLS加密解决)。

灵活可扩展:支持添加自定义头部字段。

基于请求-响应模型:客户端发起请求,服务器返回响应。

4. 常见HTTP状态码

状态码类别说明2002xx (成功)请求成功,返回数据(如网页内容)。2042xx成功但无返回内容(如删除操作)。3013xx (重定向)资源永久移动到新URL。3023xx资源临时重定向。3043xx资源未修改,使用缓存。4004xx (客户端错误)请求语法错误(如参数缺失)。4034xx服务器拒绝访问(如权限不足)。4044xx资源不存在。5005xx (服务器错误)服务器内部错误(如代码崩溃)。5035xx服务不可用(如服务器过载)。

5. 关键HTTP字段

Host:指定目标服务器的域名(用于虚拟主机)。

Content-Length:响应体的数据长度(解决TCP粘包问题)。

Connection: Keep-Alive:启用长连接(复用TCP连接)。

Content-Type:响应数据的格式(如text/html; charset=utf-8)。

Accept:客户端声明可接收的数据类型(如*/*表示任意类型)。

Content-Encoding:数据压缩方式(如gzip)。

6. HTTP vs. HTTPS

HTTP:明文传输,不安全,默认端口80。

HTTPS:通过SSL/TLS加密,防窃听/篡改,默认端口443。

7. 总结

HTTP是互联网的“普通话”,定义了客户端与服务器如何交换超文本数据。其核心是:

协议:规范通信行为。

传输:数据在两点间流动。

超文本:丰富的内容形式(文本、图片、链接等)。

通过状态码和头部字段,HTTP实现了灵活、高效的网络通信,支撑了现代Web应用的发展。