IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 在浏览器输入地址后回车到页面显示全流程 -> 正文阅读

[网络协议]在浏览器输入地址后回车到页面显示全流程

文章目录

详细版

  • 1)首先是:DNS查询
    • 有DNS的地方就有缓存,所以浏览器会会先检查一些浏览器有没有本地缓存,(如果有直接返回ip地址,结束DNS查询,后面的同理),然后是检查系统host文件里面有没有缓存,然后是路由器有没有缓存,如果前面的都没有,那么就向本地DNS服务器发起递归查询,本地DNS服务器向根DNS服务器,顶级域DNS服务器,权威DNS服务器发起迭代查询,具体是先向根服务器查询顶级域(.com,.net,.edu等这些),拿到顶级域服务器IP之后向其发起查询,其返回权威服务器的IP,又向这个新的IP发起查询,这个权威服务器再放回所访问域名的IP地址,本地DNS服务器拿到这个真正的IP地址后向客户端浏览器返回,客户端浏览器才开始向这个IP地址发起TCP连接


  • 2)然后是:建立TCP连接
    • SYN置1 ,随机初始序号,发送SYN后进入SYN_SENT状态
    • serviceSYN cookie防御系统
      • 没有部署
        • 为该连接分配 TCP缓存和相关变量(半开连接) ,随机初始序号,SYN置1,ACK(SYNACK报文段)
      • 有部署
        • 不生成半开连接 ,而是把初始序号设为hash(源IP,源port,目的IP,目的port),之后就还没有部署一样
        • 再搜到客户的ACK后判断ACK的确认序号-1是否等于hash(源IP,源port,目的IP,目的port),是的话才分配 TCP缓存和相关变量,此时TCP连接才正式建立双向连接
    • 客户收SYNACK后分配 TCP缓存和相关变量,进入ESABLISHED状态,SYN置0,ACK,可开始携带数据(HTTP请求)


  • 3)服务端对请求进行相应,客户拿到相应数据后开始解析HTML文档,解析完成后渲染显示在屏幕上


  • 4)在服务端发送完响应后,如果HTTP请求的首部行Connection
    • 为close
      • 服务器断开TCP连接
        • 服务器FIN置1,发送后进入FIN_WAIT_1状态
        • 客户发送ACK,服务器接到ACK后进入FIN_WAIT_2状态。
        • 等客户确认数据发送完成后,FIN置1,发送给服务器
        • 服务器收到FIN后发送ACK并进入TIME_WAIT状态,经过某个等待时间后连接正式关闭,释放资源,客户端收到这个ACK后也响应的关闭连接,释放资源
    • 为 keep-alive
      • 保持TCP连接













简记版

在浏览器输入地址回车到页面显示流程

  • DNS查询
    • 浏览器缓存,host,路由器缓存,本地DNS,根,顶级域,权威
  • 建立TCP连接
    • SYN置1 ,随机初始序号,发送SYN后进入SYN_SENT状态
    • serviceSYN cookie防御系统
      • 没有部署
        • 为该连接分配 TCP缓存和相关变量(半开连接) ,随机初始序号,SYN置1,ACK(SYNACK报文段)
      • 有部署
        • 不生成半开连接 ,而是把初始序号设为hash(源IP,源port,目的IP,目的port),之后就还没有部署一样
        • 再搜到客户的ACK后判断ACK的确认序号-1是否等于hash(源IP,源port,目的IP,目的port),是的话才分配 TCP缓存和相关变量,此时TCP连接才正式建立双向连接
    • 客户收SYNACK后分配 TCP缓存和相关变量,进入ESABLISHED状态,SYN置0,ACK,可开始携带数据(HTTP请求)
  • 服务端对请求进行相应,客户拿到相应数据后开始解析HTML文档,解析完成后渲染显示在屏幕上
  • 在服务端发送完响应后,如果HTTP请求的首部行Connection
    • 为close
      • 服务器断开TCP连接
        • 服务器FIN置1,发送后进入FIN_WAIT_!状态
        • 客户发送ACK,服务器接到ACK后进入FIN_WAIT_2状态。
        • 等客户确认数据发送完成后,FIN置1,发送给服务器
        • 服务器收到FIN后发送ACK并进入TIME_WAIT状态,经过某个等待时间后连接正式关闭,释放资源,客户端收到这个ACK后也响应的关闭连接,释放资源
    • 为 keep-alive
      • 保持TCP连接
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 11:12:15  更:2021-09-10 11:12:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:36:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码