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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 浏览器中输入一个URL会发生什么事情呢?戳进来 -> 正文阅读

[网络协议]浏览器中输入一个URL会发生什么事情呢?戳进来

在生活中,我们无时无刻不在使用浏览器,搜索一个关键字,访问一个网址等等一些操作,当我们在浏览器地址栏中输入一串URL时候,回车直接跳转目标页面,这其中发生什么我们就不得而知了,但是在看完本篇文章后,我相信大家有一个基础的了解。在浏览器中输入一个URL主要发生以下几个步骤:

输入网址 ------ DNS域名解析 ------ 建立TCP连接------ 发送HTTP请求------ 服务器响应请求------ 关闭TCP连接------ 浏览器解析响应

1、输入网址

首先就是在浏览器地址栏中输入目标网址,从而才能发生之后的事情。

2、DNS服务器进行域名解析,从而得到一个公网IP地址

在DNS服务解析过程到得到一个公网IP主要发生一下过程:

  1. DNS缓存:首先去浏览器查找缓存,因为浏览器一般会缓存DNS记录一短时间,如果在浏览器中查找到了缓存,就会向IP地址发送请求。如果没有查找到,就会去本地hosts文件中查找。
  2. hosts文件:在浏览器缓存中,如果查询无果,浏览器就会进行系统调用,去本地hosts文件中进行查找,如果找到了,就会向IP地址发送请求。如果没有找到,就会继续查找。
  3. 递归查询:如果以上都没有找到,那么就会进行递归查询。所谓的递归查询就是当主机所访问的本地域名服务器不知道被查询的IP地址,就会以DNS客户的身份,向其他根域名服务器继续发送请求报文,而不是让本地自己去进行下一步查询。
  4. 迭代查询:迭代查询和递归查询正好相反。所谓的迭代查询就是当根域名
    服务器收到本地服务器发送的请求报文时,告诉本地服务器下一步查询那个域名服务器,然后本地服务器进行下一步操作。而不是代替本地服务器进行查询。

3、根据IP地址,建立TCP连接(三次握手)

浏览器通过DNS解析得到了目标服务器的IP地址,就会与服务器建立TCP连接。建立连接主要是三次握手的操作。
三次握手
TCP三次握手建立连接:客户端向服务器发送连接报文请求(SYN=1),服务器收到连接请求报文后,向客户端回复一个带有SYN+ACK标志的确认应答数据包,此处的(SYN=1,ACK=1)。客户端收到确认应答数据包之后,向服务器发送带有ACK标志的数据包,表示确认已接收到确认应答报文。此时握手结束,客户端和服务器就已经建立了连接。可以进行通信。

上图也可以理解为:
??客户端:“小明!,在家不,把你篮球借我使使”
??服务器:“我在家,你上来拿篮球吧”
??客户端:“得嘞”

4、建立TCP连接成功后,向目标地址发送HTTP请求

与服务器建立连接之后,就可以向服务器发起请求,就可以看到一下报文结构了!
在这里插入图片描述
??请求行包括请求方法、URL、HTTP版。首部字段传递着重要的信息,可以从报文中看到发出的请求的具体信息。Cookies如果是第一次访问,会提示服务器建立用户缓存信息,如果不是第一次访问,可以利用Cookies对应的键值,找到相应的缓存,缓存里边存放的是用户名、密码和一些用户的相关设置。

5、构建HTTP响应

服务器接收到HTTP请求时,进行解包分用,向上交付。从而返回HTTP响应。在响应结果中会有一个状态码,状态码是由三位数组组成,根据不同的原因状态码分成了五类:

类型原因
1xx信息性状态码接收的请求正在处理
2xx成功状态码请求正常,处理完毕
3xx重定向状态码需要进行附加操作以完成请求
4xx客户端错误状态码服务器无法处理请求
5xx服务器错误状态码服务器处理请求错误

当浏览器知道了重定向最终的访问地址之后,重新发送HTTP请求,当服务器接收到请求之后,做出处理响应。返回状态码200 ok,表示服务器可以响应请求。由于报头中的Content-type为“test/html”,则浏览器以HTML形式显示。

6、关闭TCP连接(四次挥手)

当双方没有请求或者响应时,任意双方都可以发起关闭请求,与建立连接相似,只不过关闭连接需要四步。
在这里插入图片描述

  1. 客户端向服务器发出连接释放报文,然后停止发送数据。
  2. 服务器收到释放报文请求后,发出确认报文,然后将服务器上未发送完的数据,发送完毕。
  3. 服务器数据发送完毕之后,向客户端发送连接释放报文。
  4. 客户端,收到连接释放报文后,向服务器发送确认报文。然后等待一段时间之后,成功关闭TCP链接。
    上图也可以理解为:
    ??客服端:“钱给你打过去了,终止交易”
    ??服务器:“稍等一下我看一下入账没”
    ??服务器:“钱已入账,终止交易”
    ??客户端:“再见”

7、浏览器解析响应

浏览器解析响应,不仅仅是加载解析HTML,还有CSS、JS以及图片、视频等资源。根据浏览器的渲染机制对响应的数据进行渲染。渲染的数据进行相应的页面呈现和脚本交互。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:47:32  更:2021-08-11 12:48:50 
 
开发: 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 19:50:10-

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