一、什么是HTTP协议?
HTTP协议,全称 Hyper Text Transfer Protocol(超⽂本传输协议)的缩写,是⽤于服务器与客户端浏览器之间传输超⽂本数据(⽂字、图⽚、视频、⾳频)的应⽤层协议。它规定了客户端如何向服务器发送请求,以及服务器如何对请求做出响应,定义了请求和响应的格式与规则,是互联网通信的基石。
协议特点:灵活可扩展、基于TCP/IP的可靠传输、应用层协议、请求-应答模式、无状态。
二、HTTP协议通信过程
HTTP是一个应用层协议,默认端口为80,在传输层使用TCP协议进行数据的传输。
通信过程如下:
1.当用户发起一个新的请求;
2.浏览器发起对服务器的TCP连接请求;
3.服务器与浏览器之间会按照TCP协议的三次握手,建立之间的TCP连接;
4.浏览器按照http协议格式,创建请求数据包(http请求报文);
5.将请求数据包(http请求报文)发送至服务器;
6.服务器按照http协议格式,解析请求报文;
7.执行请求处理,调用相关业务逻辑方法,产生响应数据;
8.服务器按照http协议格式,将响应数据封装至响应数据包(http响应报文);
9.服务器将响应数据包,发送至浏览器;
10.浏览器按照http协议格式,对响应数据包进行解析;
11.浏览器将响应数据包中的响应内容,显示至浏览器页面,呈现给用户;
三、HTTP报文
1.请求报文
浏览器通过URL发起⼀个请求时,会发送⼀个 http 请求报⽂给⽬标服务器,服务器根据请求报⽂中携带的请求数据进⾏处理。
请求报文结构:
·第一行是包含:请求方式、URL、协议版本
·接下来的多⾏都是http请求⾸部内容,其中包含若⼲个http⾸部字段
·⼀个空⾏⽤来分隔⾸部和内容主体Body
·最后是请求的内容主体
2.响应报文
当服务器处理完请求后,会将响应数据放入http响应报文中返回给浏览器。
响应报文结构:
·第一行包含:协议版本、状态码以及描述。
·接下来的若干行是首部内容
·一个空行分隔首部和内容主体
·最后是响应的内容主体
四、HTTP请求方式
1.GET:获取资源
GET方法用于使用给定的URL从给定服务器中检索信息,完成从指定资源中请求数据。使用GET方法的请求应该只是检索数据,并且不会对数据产生其他影响。
2.POST:提交数据增加资源
POST方法用于将数据发送到服务器以创建或增加资源。使用post方法,如果两个请求相同,后一个请求不会覆盖第一个请求,所以post用于增加资源。
3.HEAD:获取响应报头
HEAD和GET方法类似,但是不返回响应报文内容主体部分,仅传输响应报头部分。主要用于确认URL的有效性以及资源更新的日期时间等。
4.PUT:修改资源
PUT方法用来修改资源,要求在请求报文的主体中包含数据内容,然后保存到请求URL指定位置。使用put方法,如果两个请求相同,后一个请求会覆盖第一个请求,所以put用于修改资源。
5.DELETE:删除资源
DELETE方法用来删除指定的资源。
6.OPTIONS:查询支持的方法
查询指定的URL能够支持的方法。会返回Allow:GET,POST,HEAD,OPTIONS等请求方式内容。
GET和POST的区别:
1.GET用于获取数据,POST用于提交数据;
2.GET和POST的请求报文格式不同;
3.GET使用请求报文中的首部字段URL传递请求参数,POST使用Request Boby提交数据;
4.GET是幂等且可缓存,POST非幂等且不可缓存;
「幂等」:意思是多次执行相同的操作,结果都是「相同」的。
五、HTTP首部字段
字段名 | 说明 | 示例 |
---|---|---|
Host | 服务器域名 | Host: www.example.com |
Content-Type | 内容类型 | Content-Type: text/html; charset=utf-8 |
Content-Length | 内容长度 | Content-Length: 1024 |
Connection | 连接控制 | Connection: keep-alive |
Accept | 可接受的响应类型 | Accept: application/json |
User-Agent | 客户端信息 | User-Agent: Mozilla/5.0... |
六、HTTP状态码
服务器返回的响应报文中第一行为状态行,包含了状态码以及原因短语,用来告知客户端请求后的响应结果。
1XX信息
2XX成功
3XX重定向
4XX客户端错误
5XX服务器错误
七、连接管理
1.长连接和短链接

2.管线化链接
将多个HTTP请求(request)整批提交的技术,在传送过程中不需先等待服务端的回应。管线化机 制须通过⻓连接(persistent connection)完成,仅HTTP/1.1⽀持此技术(HTTP/1.0不⽀持)。
八、HTTPS加密
1.HTTP协议存在的问题
HTTP由于使⽤明⽂传输,不安全。所以可能会出现内容被窃听(⽐如被抓包);不验证通信⽅的身 份,通信⽅的身份有可能遭遇伪装(⽐如钓⻥⽹站);⽆法证明报⽂的完整性,报⽂有可能遭篡改(⽐如强制在线⼴告植⼊)
2.什么是HTTPS协议?
HTTPS并不是⼀个新的协议,它使⽤了隧道进⾏通信,让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信。通过使⽤SSL,HTTPS具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。
3.加密方式有哪些?
1.消息摘要加密,例如:MD5、SHA
2.对称式加密:加密和解密使用同一把密钥
优点:加密速度快
缺点:⽆法安全的将密钥传输给发送⽅
3.非对称式加密:两把密钥,公钥加密,私钥解密
优点:可以更安全地将信息传输给通信发送⽅
缺点:运⾏速度慢
4.HTTPS的工作原理
九、总结
HTTP作为Web通信的基石,其报文结构、请求方法、状态码与连接管理等核心机制,不仅是开发者必须掌握的基础知识,更是构建高效、可靠网络应用的关键。随着网络安全威胁日益增多,HTTPS通过引入加密传输与身份验证机制,有效弥补了HTTP在安全性方面的先天不足,已成为现代Web应用中不可或缺的标准配置。深入理解HTTP与HTTPS的工作原理,不仅有助于提升系统性能与用户体验,更是构建安全、可信网络环境的必经之路。希望本文能为你的学习与实践带来切实帮助。