首页 > 其他分享 >HTTP协议

HTTP协议

时间:2022-11-21 23:00:46浏览次数:51  
标签:协议 HTTP 请求 报文 TCP 响应 连接

网络会出现的问题:

  1. 数据丢包

  2. 数据重复

  3. 数据完整性效验

  4. 数字转换模拟信号

  5. 信号衰弱

 

网络分层

  1. OSI 开放系统互连参考模型 7层

  2. TCP/IP 协议族 5层(少了表示层、会话层)

 

发送过程

  1. 应用层 DNS、HTTP

  2. 传输层 UDP、TCP

  3. 网络层 ARP、IP

  4. 数据链路层 以太网、无线Lan

  5. 物理层

 

HTTP协议

超文本传输协议 HyperText Transfer Protocol,HTTP

 

  1. HTTP报文格式

    • 起始行 start line:描述请求或响应的基本信息

    • 头部字段集合 header:使用key-value形式更详细地说名报文

    • 消息正文 entity:实际传输的数据,它不一定是纯文本、可以是图片、视频等二进制数据

  2. 请求行报文格式

    • 请求方法:GET \ POST \ PUT \ HEAD

    • 请求目标:通常是一个 URL,标记了请求方法要操作的资源

    • 版本号:表示报文使用的 HTTP 协议版本

  3. 响应行报文格式

    • 版本号:表示报文使用的 HTTP 协议版本

    • 状态码:一个三位数,用代码的形式表示处理的结果,例:200是成功,500是服务器错误

    • 原因:作为数字状态码的补充,是更详细的解释文字,帮助人理解原因

  4. HTTP头字段

    • 头部字段的格式是 key-value 的形式,用 :分隔,头字段可以任意添加自定义

    • 字段名不区分大小写,不允许出现空格

    • 可以用 “-” 分隔,不能使用下划线 “_”

    • 字段名后面紧跟 “:”,不能有空格,“:”后的字段值可以有多个空格

    • 字段的的顺序没有固定

    • 字段原则上不能重复,除非这个字段本身的语义允许,例:Set-Cookie

  5. 常用头字段

    • 请求字段:请求头中的头字段:Host \ Referer

    • 响应字段:响应头中的头字段:Server \ Date

    • 通用字段:在请求头和响应头里都可以出现的:Content-type \ Connection

     

HTTP请求的完整过程

  1. 解析 IP 地址

    1. 浏览器 从URL 中解析域名

      1. 浏览器缓存

      2. 本机域名解析文件 hosts(/etc/hosts)

    2. 步骤一没能获取 ip,则发起 DNS 请求获取 ip

  2. 网络请求

    1. TCP 三次握手

    2. 发起 HTTP 请求

    3. HTTP 响应

    4. 浏览器解析响应报文,渲染页面

    5. TCP 四次挥手

 

TCP 协议

TCP Transmission Control Protocol:面向连接的,可靠的,基于字节流的传输层通信协议

特点:

  • 基于连接的:数据传输之前需要建立连接

  • 全双工的:双向传输

  • 字节流:不限制数据大小,打包成报文段,保证有序接收,重复报文自动丢弃

  • 流量缓冲:解决双方处理能力的不匹配

  • 可靠的传输服务:保证可达,丢包时通过重发机制实现可靠性

  • 拥塞控制:防止网络出现恶行拥塞

 

TCP 连接管理

  1. TCP 连接

    四元组:源地址、源端口、目的地址、目的端口

  2. 确认连接:TCP 三次握手

    1. 同步通信双方初始序列号(ISN,initial sequence number)

    2. 协商 TCP 通信参数(MSS,窗口信息,指定效验和算法)

  3. 关闭连接:TCP 四次挥手

    1. 发送 FIN 数据包,代表A不在发送数据

    2. 收到请求,开始应答,避免了A重新发送 FIN 重试(应答机制)

    3. 处理完数据之后关闭,关闭连接,及发送 FIN 请求

    4. 收到请求后发送 ASK 应答,B服务可以释放连接

      等待 2MSL 后释放连接

      1. 防止报文丢失,导致B重复发送FIN

      2. 防止滞留在网络中的报文,对新建立的连接造成数据扰乱

     

查看当前 TCP 连接状态:netstat -tpn

 

数据可靠性传输

  1. 重传机制

    1. ask 报文丢失

    2. 请求报文丢失

  2. 滑动窗口协议与累计确认(延时 ask)

 

HTTPS协议

所有HTTPS请求和响应在发送网络之前,都要进行加密

应用层:HTTP + SSL/TSL

 

SSL/TSL

SSL:即安全套接层,1994年,改名为 TLS

  1. 摘要算法

    • MD5 \ SHA1 \ SHA2 \ SHAL 256

  2. 对称加密

    • XOR(异或算法)

  3. 非对称加密

    • DH \ DSA \ RSA \ ECC

    •  

标签:协议,HTTP,请求,报文,TCP,响应,连接
From: https://www.cnblogs.com/c0lmd0wn/p/16913722.html

相关文章

  • dhcp 协议原理与说明
    DHCP报文DHCP报文是承载于UDP上的高层协议报文,采用67(DHCP服务器)和68(DHCP客户端)两个端口号。DHCP报文的格式如下图所示。图1 DHCP报文格式<所有DHCP提供的配置信息都在opt......
  • php伪协议
        https://www.cnblogs.com/linfangnan/p/13535097.html#:~:text=PHP%20%E4%BC%AA%E5%8D%8F%E8%AE%AE%20%E6%98%AF%20PHP%20%E6%94%AF%E6%8C%81%E7%9A%84%E5%8......
  • HTTP/2 stream 1 was not closed cleanly before end of the underlying stream
    报错日志leepandar@localhostant-design-vue-jeecg%yarninstallyarninstallv1.22.19[1/4]......
  • IIC通信协议
    1、IIC简介IIC(Inter-IntergatedCircuit,集成电路总线)由飞利浦(Pilliphs)公司发明,是一种串行总线通信。有两根线: SDA:SerialDAta串行数据线 数据传输按bit位,属于半双工......
  • 隐私计算技术解读 | 一文读懂SealPIR-基于同态的隐私信息检索协议
    隐私信息检索(PrivateinformationretrievalPIR)也称为隐匿查询或匿踪查询,在医疗、股票、金融、社交等领域中都有大量应用场景。近年来PIR技术研究逐渐丰富,行业对应用PIR......
  • go 语言 http包详解
      首先,熟悉http协议的都知道,http协议是基于TCP实现的。 http服务器的工作方式大概就是监听socket端口,接受连接,获取到请求,处理请求,返回响应。 所以,对应的会有几个部分......
  • httprunner运行遇到彻底解决安装包过程中的Requirement already satisfied:问题
      deMacBook-Pro:bndcsyuansanmei$python3-mpipinstallhttprunner==v4.3.0Requirementalreadysatisfied:httprunner==v4.3.0in/Users/y/Library/Python/3......
  • HTTP代理提取时应注意些什么
    很多人在提取HTTP代理时,经常会遇这样那样的问题,使用情况总是不尽如人意,其实HTTP代理提取的时候,有一些注意事项总是会被人忽视,到底是什么呢?让我们来看一下看吧。1......
  • 为什么用HTTP代理,有什么好处
    当下大数据时代,爬虫已经成了获取数据的必不可少的方式,在使用爬虫多次爬取同一网站时,经常会被网站的IP反爬虫机制给禁掉,为了解决封禁IP的问题,通常会使用以下两种方式:......
  • 什么是隧道HTTP代理
    所谓隧道,实际上是路由器把一种网络层协议封装到另一个协议中以跨过网络传送到另一个路由器的处理过程。发送路由器将被传送的协议包进行封装,经过网络传送,接受路由器解......