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应用的发展。