浏览器中输入 Baidu.com 并且按下回车之后发生了什么?

一、客户端做了些什么?

1、解析URL:首先对URL进行解析,分析所需要使用的传输协议和请求的资源的路径。如果输入的URL中的协议或者主机名不合法,会传给搜索引擎。

如果没有问题,浏览器会检查URL中是否出现了非法字符,如果存在,则对非法字符进行转移后进行下一过程。

二、DNS解析:下一步首先需要获取的是输入的URL的域名IP地址,

1、首先会判断本地是否有该域名的IP地址缓存

2、如果有则使用,如果没有则向本地DNS服务器发出请求,本地DNS服务器会检查是否存在缓存。

3、如果没有就向根域名服务器发起请求,获得负责的顶级域名服务器地址后,再向顶级域名服务器请求,然后获得负责的权威域名服务器的地址后。

4、再向权威域名服务器发送请求,最终获得域名的ip地址后,本地服务器将这个IP地址返回给请求的用户。用户向本地DNS服务器发起请求属于递归,本地DNS向各级域名属于顶戴

三、获取MAC地址:当浏览器得到IP以后,数据传输还需要知道目的主机的MAC地址,因为应用层下发数据到传输层,TCP协议会指定源端口和目的端口,

然后下发给网络层。网络层:会将本地地址作为源地址,获取的IP地址作为目的地址。

然后下发给数据链路层,数据链路层的发送需要加入通信双方的MAC地址,本机的MAC地址作为源MAC地址,目的MAC地址分情况创立。

通过将IP地址与本机的子网掩码相与,可以判断是否与请求主机在一个子网中,如果在同一个子网中,可以使用ARP协议获取到目的主机的MAC地址,如果不在一个子网

那么请求转发给网关,由它代为转发(找目的MAC地址),此时同样可以通过ARP协议来获取网关的MAC地址,此时目的主机的MAC地址应该为网关的地址。

四、TCP三次握手:下面是TCP建立连接的三次握手的过程,首先客户端向服务器发送一个SYN连接请求报文段和一个随机序号,服务端接收到请求后向服务端发送一个SYN ACK报文段

确认连接请求,并且向客户端发送一个随机序号。客户端接收服务器的确认应答后,进入连接建立状态,同时向服务器也发送一个ACK确认报文段,服务器端接收到确认后,也进入了连接建立状态。

五、HTTPS握手:如果使用HTTPS协议,在通信前还存在还存在TLS的一个四次握手。首先由客户端向服务端发送使用的协议版本号、一个随机数和key使用的加密方法。服务端收到后

确认加密方法,也向服务端发送协议版本号、一个随机数和key使用的加密方法。服务端收到后,确认加密方法,也向客户端发送一个随机数和自己的数字证书。客户端收到后,首先检查数字

证书是否有效,如果有效,则生成一个随机数,并使用证书中的公钥对对随机数加密,然后发送给服务端,并且还会提供给一个签名所有内容的hash值供服务端检查验。服务端接收后,使用自己的

私钥解密,同时向客户端发送一个签名所有内容的hash值供客户端检验,这个时候是双方都有了三个随机数,按照之前所约定的加密方式,使用三个随机数生成一把秘钥,以后双方通信就靠这个秘钥对数据加密后传输。

六、返回数据:当页面请求发送到服务端后,服务端会返回一个html文件作为响应,浏览器收到后解析html

七、页面渲染:浏览器建立DOM树、CSSOM树

八、TCP四次挥手。

 

原文地址:https://www.cnblogs.com/Alei777/p/16636098.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


现在给大家介绍一下如何查询MAC的生产日期,希望对你查询MAC的生产日期操作有所帮助。
1、点击【编辑虚拟机设置】,转到【CD/DVD (SATA)】,选中【使用 ISO 映像文件】复选框,点击【浏览】,找到已经准备好的 MacOS Ventura 镜像;4、客户机操作系统下,选择【Apple Mac OS X】,版本选择大家需要的【macOS版本】,再点击【下一步】;7、完成【抹掉】后,左上角关闭该窗口,返回上一界面,选择【Install macOS】,正式进入苹果系统安装流程;1、打开 Vmware Workstation,然后点击左上角的【文件】,打开的下拉项中,选择【新建虚拟机】;
注意:用哪个版本的 Python 运行安装脚本,pip 就被关联到哪个版本。一般情况 pip 对应的是 Python 2.7,pip3 对应的是 Python 3.x。pip介绍:pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。1.打开后输入python3确定电脑上是否已安装python3,如果输入python是查看mac上的自带版本。如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。如下图是已经成功安装pip的状态。
Mac 安装nvm
Mac(M1)安装VMware虚拟机及Linux系统
Mac 如何安装 Telnet,mac安装telnet命令
是不是对键盘输入厌烦了?那你可以试试语音输入。 你可以按照下面的步骤打开Mac的语音输入功能。 以 macOS Catalina 为例: Step 1. 点击屏幕左上角的图标,点击【系统偏好设置】。
1.clean my Mac x 2.Cleaner One Pro 3.App Cleaner
按caps lock键。 CapsLock键,短按切换中英文,长按切换大小写。
windows: 1.PowerToys 2.不用软件进行分屏 Windows 10技巧1:窗口1/4分屏 - Acer Community 介绍说明 从Win7时代开始,微软便引入了屏幕热区概念,即
https://zhuanlan.zhihu.com/p/111111684 下载地址: https://www.smoothscroll.net/mac/
https://support.apple.com/zh-cn/guide/imac/apd2e7352054/mac 浏览:24 英寸 iMac 24 英寸 iMac 比以往更个
在Mac自带的中文输入法中,“反斜杠”键(“\”)就是顿号。
1.系统偏好设置。 2和3步如下图: 注意:在设置后,启用capslock大写的时候,需要长按capslock键。
Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别。即时渲染使得你写Markdown就想是写Word文档一样流畅自如,不像其他编辑器的有编辑栏和显示栏。简洁美观实时预览扩展语法跨平台免费Typora现在收费,但你仍然可以在官方网站上找到历史版本。虽然新版本仍然值得收费,但免费版本仍然可以使用。httpshttpshttpshttpshttpshttpshttpshttps。......
Mac M1安装Centos7
连接为官方下载链接, 直接复制MD5可迅雷下载亲测可用, 和付费版使用体验无差别.1. Windows 64bithttps://download.typora.io/windows/typora-setup-x64-0.11.18.exeMD5:12F96372BEE2951ACF5627EA28F8A389**2. Window 32bit **https://download.typora.io/windows/typora-setup-ia32-0.11.18.exeMD5:F5036
ubuntu22.04 、系统安装、win双系统、Ubuntu分区、Ubuntu优化、美化gnome tweaks,扩展、macos、搜狗输入法、wps字体、微信安装、navicat15、java开发环境搭建、idea 输入法问题处理、双系统问题、github慢等等。史上最全保姆级Ubuntu使用教程
MAC怎么获取文件路径 MAC获取文件路径的四种方法