HTTP协议格式
首行
请求首行:包含三个要素 请求方法、URL、协议版本,空格间隔、\r\n结尾
请求方法很多,每种方法负责的功能也是不同的
- GET :主要用于获取实体数据资源,请求某个数据,也可以将某个数据提交到查询字符串中
- HEAD:针对请求,只要响应的头部信息,不要实体资源,响应没有正文
- POST:向服务器提交表单数据,提交的数据保存在正文中
- URL:统一资源定位符,定位某个服务器上的某个资源
响应首行:包含三个要素 协议版本、响应状态码、状态码描述,空格间隔、\r\n结尾
- 响应状态码:用状态码表示服务器收到请求并进行处理的结果
- 1XX:表示针对这次请求,一些描述以及协议版本协商提升的信息
- 2XX: 表示针对这次请求,成功处理了
- 3XX: 表示针对这次请求,资源重定向到了其它位置 301 -- 永久重定向 302 -- 临时重定向
- 4XX: 客户端错误
- 5XX:服务端错误
- 状态码描述: 针对状态码的文字描述信息
头部:描述本次请求或者响应的一些关键字段,由key val键值对组成,每个键值对以\r\n结尾
- Connection:描述本次通信的是长连接还是短连接
- Content-Length:描述本次请求或响应所携带的正文长度
- Location:指定重定向新的URL,
- Cookie:保存客户端的状态信息的字段
空行 :\r\n,间隔头部与正文,与最后一个头部字段的结尾,连接成为连续的两个\r\n,也就是\r\n\r\n
正文:请求时提交的数据或者响应的资源