HTTP协议格式详解(总结)

认识url

url:就是我们平时说的“网址”
在这里插入图片描述

HTTP协议格式

HTTP:请求响应机制
HTTP底层协议:TCP 协议
TCP 的特点:面向连接,保证可靠性
面向连接:我要和对应的服务器进行通信,第一件事情就是要把连接建立好

一个简单的网络通信:

  1. 建立连接
  2. 发请求
  3. 响应请求并断开连接

应用层核心工作:
把数据通过 TCP 实现从A点到B点,但是从A——>B只是最基础阶段,它后续要对HTTP请求做出响应。

HTTP 用 TCP要实现的两个基本功能:

  1. 发数据;
  2. 收数据。

HTTP 不关心其他的细节问题。

HTTP的任务:

  1. 请求资源(从对方服务器将资源拿到)——更简单;
  2. 提交信息(处理数据),从客户端把数据推送到服务器。
HTTP请求:

在这里插入图片描述
请求报头每一行的格式:

Name:[空格]内容(一行就是一个属性,这里的“行”是以换行符作为标准)

Header 解析:

  • 请求行:
[请求方法]  [url]  [版本] 	(空格分开)

在这里插入图片描述

  • Host :请求的资源在哪个主机的端口上
  • Connection:该请求支持长连接(heep_alive)
  • Content-Length:正文内容长度
  • Content-Type:数据类型
  • User-Agent:声明用户的操作系统和浏览器版本信息
  • Accent:发起了请求
  • Referer:当前页面是从哪个页面跳转过来的
  • Accept-Encoding:接受的编码
  • Accept-Language:接受的语言类型
  • Cookie:用于在客户端存储少量信息,通常用于实现会话(session)功能

详解 Connection:
在这里插入图片描述
HTTP 是应用层协议,HTTP 用的是下层的 TCP协议,而 TCP 是保证可靠性的。
TCP 为了保证可靠性,所以 TCP 是面向连接的。
TCP 面向连接之前必须先建立连接——> HTTP 向通信就要在底层先把连接建立好。
然后,发送方根据已经建立好的连接向服务器发送一个请求。
发过去之后对方就可以根据这个完整地读出来,对方再分析这个报文,然后对这个报文做出响应,HTTP 请求结束,之后断开连接。
这种一来一回的形式成为短连接(一次请求一个)

读请求:按行读取
什么时候读完报头?:读到空行
有效载荷:正文
报头和有效载荷分离:空行
紧挨着的几个请求如何分开:那么读一个请求时,在读取正文部分就要精确正文要读取多少,需要严格控制,所以报头中有一个属性——>Content-Length(正文的长度)

HTTP响应:

在这里插入图片描述
Header 解析:

  • 状态行:
[版本号]  [状态码]  [状态码解释]           (空格分开)

HTTP 方法

  1. GET:获取资源
  2. POST:传输实体主体
  3. PUT:传输文件
  4. HEAD:获得报文首部(相当于GET方法获得的资源去掉正文)
  5. DELETE:删除文件
  6. OPTIONS:询问支持的方法(客户端问服务器)
  7. TRACE:追踪路径
  8. OCONNECT:要求用隧道协议连接代理
  9. LINK:建立与资源之间的联系
  10. UNLINE:断开连接关系

GET 方法和 POST 方法核心点:

  1. 传参的数据量不一样,一个通过 url,一个通过正文,所以 POST 能传更多的数据;
  2. GET 方法和 POST 方法传参位置上,可靠性问题。

HTTP 状态码

状态码类别原因短语
1XXInformational (信息性状态码)接收的请求正在处理
2XXSuccess (成功状态码)请求正常处理完毕
3XXRedirection (重定向状态码)需要进行附加操作以完成请求
4XXClient Error (客户端错误状态码)服务器无法处理请求
5XXServer Error (服务器错误状态码)服务器处理请求出错

HTTP 总结

HTTP 如何做到将报头和有效载荷分开?
特殊符号:空行

HTTP 有没有向上交付?
理论上 HTTP 不需要向上交付,但是上一层还有用户,需要将正文、请求方法和属性等交给用户。

  • 56
    点赞
  • 310
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值