zoukankan      html  css  js  c++  java
  • 在浏览器中输入URL后,执行的全部过程。会用到哪些协议?(一次完整的HTTP请求过程)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/hellodake/article/details/81974421

    一次完整的HTTP请求过程:

    1.首先进行域名解析,域名解析具体过程讲一下:

    • 浏览器搜索自己的DNS缓存,缓存中维护一张域名与IP地址的对应表;
    • 若没有,则搜索操作系统的DNS缓存;
    • 若没有,则操作系统将域名发送至本地域名服务器(递归查询方式),本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则,通过以下方式迭代查找:

    本地域名服务器向根域名服务器发起请求,根域名服务器返回com域的顶级域名服务器的地址;

    本地域名服务器向com域的顶级域名服务器发起请求,返回权限域名服务器地址;

    本地域名服务器向权限域名服务器发起请求,得到IP地址;

    • 本地域名服务器将得到的IP地址返回给操作系统,同时自己将IP地址缓存起来;
    • 操作系统将IP地址返回给浏览器,同时自己也将IP地址缓存起来;
    • 至此,浏览器已经得到了域名对应的IP地址。

    2.浏览器发起HTTP请求;

    3.接下来到了传输层,选择传输协议,TCP或者UDP,TCP是可靠的传输控制协议,对HTTP请求进行封装,加入了端口号等信息;

    4.然后到了网络层,通过IP协议将IP地址封装为IP数据报;然后此时会用到ARP协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址,找到目的MAC地址;

    5.接下来到了数据链路层,把网络层交下来的IP数据报添加首部和尾部,封装为MAC帧,现在根据目的mac开始建立TCP连接,三次握手,接收端在收到物理层上交的比特流后,根据首尾的标记,识别帧的开始和结束,将中间的数据部分上交给网络层,然后层层向上传递到应用层;

    6.服务器响应请求并请求客户端要的资源,传回给客户端;

    7.断开TCP连接,浏览器对页面进行渲染呈现给客户端。

    无欲则刚 关心则乱
  • 相关阅读:
    [转]shell getopts用法
    [转]KVM虚拟化原理探究
    [转]存储相关的一些概念解释
    [转]绑定设备到驱动
    [转] SCSI, FC, ISCSI协议
    [转译]zoned storage device
    CORS jsonp
    orange---openresty.---authorization,-129.0.1.227,jwt
    vue
    hive sqoop,sqoop-hive import data
  • 原文地址:https://www.cnblogs.com/xjyxp/p/11446731.html
Copyright © 2011-2022 走看看