本文主要是介绍一次网络请求的全过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 输入网址
- 递归搜索DNS
- 找到IP地址
- 发起TCP请求
- 三次握手建立连接
- 发送HTTP请求
- 服务器返回响应
- 浏览器解析(其中js阻塞浏览器加载)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uvs94Mr9-1579231223226)(https://raw.githubusercontent.com/zhangyiming748/learning_notes/master/%E7%BD%91%E7%BB%9C/HttpRequest.jpg)]
-
用户输入url,浏览器内部代码将url进行拆分解析
|1|2|3|4|5|6|7|8|
|:–😐:–😐:–😐:–😐:–😐:–😐:–😐:–😐
|scheme|://|login:password|@address|:port|/path/to/resource/|?query_string|#fragment|
|协议名称|层级URL标记符号|访问资源需要的凭证信息|服务器地址|端口号|指向资源的路径|查询字符串|书签| -
浏览器首先去找本地的hosts文件,检查在该文件中是否有相应的域名. IP对应关系,如果有,则向其IP地址发送请求,如果没有就会将domain(域)发送给 dns(域名服务器)进行解析(解析如下图),将域名解析成对应的服务器IP地址,发回给浏览器[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8twHNJNs-1579231223227)(https://raw.githubusercontent.com/zhangyiming748/learning_notes/master/%E7%BD%91%E7%BB%9C/DNS.jpg)]
-
接下来就是网络通信
- 应用层客
这篇关于一次网络请求的全过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!