因为有谷里的一道同名考题,我才开始着手准备学习相关的知识,无奈基础薄弱且现学现卖,所以只能归纳个大概,以待后期按照这篇博客中的各个知识点来扩充相关知识。
我归纳的过程大概就是以下四部分:
①,浏览器通过域名查找与之对应的IP地址
②,浏览器通过查找到的IP地址建立连接
③,浏览器向服务器发送请求,服务器响应请求
④,浏览器与服务器断开连接
1,通过域名查找对应IP
①,浏览器搜索自己的DNS缓存,若没有
②,搜索操作系统的DNS缓存,若还没有
③,所有hosts文件里面的DNS缓存,若还没有
④,操作系统将域名发送到电信的DNS服务器去查找
⑤,找到以后操作系统和浏览器把IP缓存起来
2,通过查找到的IP地址建立连接
建立连接的过程就是浏览器与服务器的“三次握手”
①,浏览器向服务器发送建立连接的请求(我想和你处对象行吗)
②,服务器收到请求后发送同意连接的信号(可以,我很喜欢你)
③,浏览器收到同意连接的信号后,再次发出确认连接的信号(太棒了,我更喜欢你)
完成三次握手,浏览器与服务器就建立了连接
3,浏览器向服务器发送请求,服务器响应请求
①,浏览器根据 URL 内容生成 HTTP 请求,请求中包含请求文件的位置、请求文件的方式等等
②,服务器接到请求后,会根据 HTTP 请求中的内容来决定如何获取相应的 HTML 文件
③,服务器将得到的 HTML 文件发送给浏览器
④,在浏览器还没有完全接收 HTML 文件时便开始渲染、显示网页
⑤,在执行 HTML 中代码时,根据需要,浏览器会继续请求图片、CSS、JS等文件,过程一样。
4,浏览器与服务器断开连接(四次挥手)
①,浏览器向服务器发送一个断开连接的请求(我厌倦了,你走吧)
②,服务器接到请求后发送确认收到请求的信号(啊)
③,服务器向浏览器发送断开通知(那我们分手吧)
④,浏览器接到断开通知后断开连接并反馈一个确认信号(嗯,好的)
服务器收到确认信号后断开连接