协议基础-HTTP协议

一、协议栈

  1. 应用层——提供服务。HTTP、HTTPS、DNS、FTP。
  2. 传输层——为应用层提供端到端的通信。UDP、TCP。
  3. 网络层——主机之间通信。
  4. 数据链路层——负责主机与网络之间的数据交换。
  5. 物理层——实际透明传输数据的硬件相关。

二、http概念

http协议是超文本传输协议,是发送请求和接受响应的规范。

http协议是是应用层协议,基于传输层的TCP协议。

三、http请求模型

简单的http请求模型,拥有2个端——客户端、服务端;拥有2个动作——请求、响应。

谁发起请求,谁就是客户端。通常浏览器是客户端。如果浏览器和服务器中间有一层nodeJs中台,那么他既是客户端也是服务端。

四、http的工作过程

一次http操作称为一个事务(由多个步骤组成,只要有一个步骤失败就整体失败的规则),其工作过程分为四个步骤(以http1.x~2.x为主的tcp传输层举例):

  1. 客户端与服务端建立tcp连接。
  2. 客户端发送请求,包括:资源标识符url、协议版本、各种描述请求的信息和请求内容。
  3. 服务端接收请求,给予相应的响应。
  4. 客户端接收响应,断开tcp通信链路。

所谓的三次握手和四次挥手,握手都发生在第一步,挥手都发生在第四步。

http事务占用IO资源,IO资源非常宝贵,所以断开TCP连接是非常重要的。

1.请求组成

  • 请求行:方法符号 + url + 协议版本
  • 消息报头:描述请求的信息
  • 请求正文:post 的 body

2.响应组成

  • 状态行,协议版本 + 状态码 + 描述文本
  • 消息报头:描述响应的信息
  • 响应正文:response

五、http状态码

  1. xx:提示信息,比如101协议协商:判断是否需要切换协议。发送一个http1.1的协议,然后服务端返回1xx说明希望另一个版本的协议进行通信。比如请求websocket。
  2. xx:成功、接收
  3. xx:重定向。
  4. xx:客户端错误,请求有语法错误或无法实现。401,协议层验证错误。403,没有访问权限。
  5. xx:服务器错误。502Gateway,反向代理错误。

六、重要的http版本

http1.1:1999年,长链接机制。

http2.0:2015年,默认已经加密了,带s。

http3.0:基于UDP协议。

https:实际上不是http协议,与比http协议多了一个加密模块。

七、浏览器键入url后发生了什么?

  1. 键入url。
  2. 检查网络通畅,可能通过一些硬件、软件网关设备。
  3. dns解析。把字符串转为对应的ip地址,要从dns服务器查询,这个服务器相当于一个超大的数据库。然后浏览器才能知道要访问哪个服务器。dns协议与http协议一样,都是应用层协议。
  4. 发送请求。
  5. 服务器收到请求,由服务器的代理转发到某个具体的服务上。
  6. 具体的服务会返回相应的响应。返回的过程经过的路由节点,不一定是请求时候的路由节点,这是因为互联网的网络结构。
  7. 浏览器接受响应后解析数据、渲染。

八、互联网为什么是一个网络结构?

互联网上有无数联网的设备,这些设备是互联网上的节点。

当一个请求发送时,它会根据它的一个路由表取把信息(传递)到下一个节点。

如果下一个节点挂了,那么它会寻找路由表的第二、第三、第四选项。

所以网络结构是为了提升互联网信息传递的健壮性的。

这个路由表是一个策略,可以设置优先级,理论上会跳最少的节点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值