Http网络协议包简单学习
in 默认分类 with 0 comment

Http网络协议包简单学习

in 默认分类 with 0 comment

Http网络协议包

  1. 在网络中传递信息都是以二进制形式存在的。

  2. 接收方(浏览器、服务器)在接收到信息后,要做第一件事就是将二进制数据进行编译,例如文字、图片、视频、命令等

  3. 传递的信息数据量往往都比较巨大,因此导致接收方很难在一组连续的二进制中得到对应数据,例如
    浏览器发送一个请求:http://xxx/xxx

    这个请求信息以二进制发送,例如:01010100101010101010100110101011010111100

    Http服务器很难从这组二进制数据中得到相关信息

  4. 网络协议包是一组有规律的二进制数据,在这组数据中存在了固定空间,每一个空间里main专门存放特定的信息,这样接收放在收到网络协议包之后就可以到固定的空间得到对应信息,网络协议包的出现极大程度降低了接收方对接收到的二进制的编译难度。
    [0000(ip地址) 0000(端口号) 0000(资源文件名) 0000]

常见网络协议

  1. FTP网络协议包
  2. Http网络协议包
  3. Https网络协议包

Http网络协议包

在基于B/S结构下互联网通信过程中,所有在网络中传递信息都是保存在Http网络协议包中

Http也分为两类

  1. Http请求协议包
    在浏览器准备发送请求时,负责创建一个Http请求协议包,浏览器会将请求信息以二进制的形式保存在Http请求协议包的个个空间。由浏览器负责将Http请求协议包推送到制定服务器端计算机。(这个过程被称为:浏览器发送请求)
  2. Http响应协议包
    Http服务器在定位到被访问的资源文件之后,负责创建一个Http响应协议包,Http服务器会将定位到的文件内容或文件命令以二进制的形式写入到Http响应协议包各个空间中。最后由Http服务器负责将Http响应协议包推送回发起请求的浏览器上。

Http请求协议包内部空间

  1. 按照自上而下划分,分为4层空间
  2. 空间划分:
    1. 请求行:
      在请求行中主要存储2个属性,一个是url,第二个是method
    2. 请求头
      当请求方式为GET的时候,请求头存放了请求参数信息
    3. 空白行
      在这一层中没有任何内容,这一层主要起到隔离的作用,隔离请求头与请求体
    4. 请求体
      如果以POST方式发送请求,它则要求浏览器将参数存放在请求体当中。

截屏20201129 10.56.22.png

Http响应协议包内部空间

  1. 按照自上而下划分,分为4层空间
  2. 空间划分:
    1. 状态行:
      主要存储Http状态吗
    2. 响应头
      在响应头中有一个重要属性:content-type,
      • content-type 指定浏览器采用对应编译器对响应体二进制数据进行解析。
    3. 空白行
      在这一层中没有任何内容,这一层主要起到隔离的作用
    4. 响应体
      这里存放的是可能被访问的静态资源文件的内容,也可能是被访问的静态资源文件命令。还可能是被访问的动态资源文件的运行结果。这些内容都是被以二进制的形式存放