zoukankan      html  css  js  c++  java
  • HTTP协议请求流程分析

    一、DNS域名解析

    用户输入一个URL(统一资源定位符)或点击一个链接,这里以访问www.baidu.com为例。

    1、用户在浏览器中输入www.baidu.com,浏览器先查找自己的缓存,如果存在百度的缓存可直接查找。如果不存在

    2、查找主机的hosts文件,若hosts文件中存在直接通过主机访问。如果不存在

    3、查找本机首选本地DNS缓存服务器,如果存在百度的地址,返回给主机,再通过主机访问百度服务器。若不存在

    4、本地DNS缓存服务器会去寻找 .(根域),根域不存在具体地址,会返回 .com 一级域

    5、本地DNS去找 .com 一级域,返回 baidu.com

    6、本地DNS缓存服务器会去寻找 baidu.com 解析服务器,将 www.baidu.com 的IP地址返回给本地DNS缓存服务器。

    7、本地DNS缓存服务器会先记录下百度的IP地址,然后返回给主机 。

    8、主机在接收到返回的IP地址时,会直接去寻找百度的服务器。

    二、连接

    1、主机会产生一个随机端口(1000--65635)和服务器的80端口建立连接(三次握手)

    • 刚开始客户端与服务器处于关闭状态
    • 客户机向服务器发送请求连接的报文,同步位SYN=1,序列号seq=x,期待序列号为x+1。此时客户端处于同步已发送状态。
    • 服务器接收到来自客户端的请求之后,确认收到请求ACK=1,确认序列号ACK=x+1。服务器向客户端发送请求连接的请求SYN=1,序列号seq=y,期待序列号y+1,此时服务器处在同步已收到状态。
    • 客户端接收到来自服务器的请求,确认收到ACK=1,确认序列号ACK=y+1,序列号seq=x+1,此时客户端与服务器处于已连接状态

    2、确认连接后,客户端向服务器发送包含头部、主体的HTTP GET请求

    3、服务器向客户端发送包含头部、主体、正文的HTTP响应

    4、客户机在接受到内容后经浏览器显示给用户

    三、断开连接

    1、当客户机关闭浏览器页面时(四次挥手)

    • 开始时客户端与服务器处于连接状态
    • (1)客户端向服务器发送请求释放连接的报文段FIN=1,序列号seq=w,期待序列号w+1,此时客户端处于终止等待1状态。
    • (2)客户端接收到来自客户端的请求,确认收到ACK=1,确认序列号seq=w+1,此时服务器处于关闭等待状态,服务器向客户端做出回应,此时客户端处于终止等待2状态
    • (3)当服务器将客户端的请求全部回应完后才开始请求断开连接,服务器向客户端发送请求终止报文段FIN=1,序列号seq=v,期待序列号为v+1,此时服务器最后等待客户端的接收。
    • (4)客户端接收到来自服务器的请求,确认收到ACK=1,确认序列号ACK=v+1,此时客户端处在时间等待状态,客户端向服务器作出回应,服务器收到回应后会立即关闭,客户端需等待两个最长报文段寿命的时间再关闭
    • 客户端与服务器处于关闭状态,断开来连接。
  • 相关阅读:
    Halcon 如何将图像转化为矩阵形式
    Halcon 图像分割
    Halcon intensity算子,用于计算灰度的均值和方差
    Halcon draw_region接口
    Halcon scale_image 函数用法技巧
    Halcon 保存图像
    Halcon 读取多张图片
    Halcon 算子 sub_image add_image mult_image div_image
    Halcon 算子 get_grayval 用于读取图像的灰度值
    Halcon 算子 convert_image_type 转换图像类型
  • 原文地址:https://www.cnblogs.com/tanxiaojuncom/p/11492616.html
Copyright © 2011-2022 走看看