HTTP协议概述
1.1 HTTP的基本概念
HTTP是一种应用层协议,使用TCP作为传输层协议,默认端口是80,基于请求和响应的方式,即客户端发起请求,服务器响应请求并返回数据(HTML,JSON)。在HTTP/1.1中,使用了长连接技术,允许一个连接复用多个请求和响应,减少了TCP三次握手的消耗。
1.2 HTTP的基本结构
HTTP请求部分:
- 请求行:包含请求方法(GET, POST等)、请求URL、协议版本。
- GET:请求资源,通常用于获取数据。
- POST:提交数据,用于发送数据到服务器进行处理。
- PUT:更新数据,用于上传或修改资源。
DELETE
:删除资源。- URL:资源标识符,表示请求的资源地址,包含协议、主机名、路径、查询参数等
- 请求头:包括各种元数据,如Connection、Host、Content-Type等。
- Content-Type:指示请求体的数据类型,通常在POST或PUT请求中使用(例如
Content-Type: application/json
)。 - Host:指定请求的主机名和端口号,必需字段
- Connection:指定控制连接的方式(例如
keep-alive
表示保持连接)
- Content-Type:指示请求体的数据类型,通常在POST或PUT请求中使用(例如
- 空行:标识头部与载荷的分界线,如果没有空行会发送TCP粘包,strstr解析/r/n获得载荷
- 请求体:通常在POST请求中出现,包含请求的具体数据。
- 对于GET请求,通常不携带请求体。GET请求的数据是通过URL中的查询参数传递的,例如:GET /path/to/resource?name=J