从输入URL到显示页面,发生了什么?

从输入URL到显示页面,发生了什么?

正如文中开头写的,当我们在地址栏输入URL之后,浏览器会发生一系列的行为,但是我们根本看不到,所以导致对许多内部原理不清楚,作为一个迈向geek程序员的路上还是要知其然知其所以然的,凡事还是要弄懂原理,这样会对自己有一个较大的提升,希望大家共勉。
好了,闲话不多说,开始上干货了:(由于其中涉及到许多复杂知识,单列出来都能说好多,暂时只说一个大概的框架,不考虑很多复杂知识,算是一个入门简化版)

1. 浏览器检查缓存,如果请求对象在缓存中,并且也未改动,直接跳到step 9;
2. 浏览器去OS请求查找服务端ip地址;
3. OS通过DNS查找到ip地址,并返回给浏览器;
4. 浏览器和服务器建立TCP连接(https更加复杂,有兴趣可以看看https);
5. 浏览器通过TCP连接发送HTTP请求;
6. 浏览器接收到HTTP 响应(Response),就会关闭TCP连接或是发送下一次请求;
7. 浏览器会根据返回的状态码判断是重定向还是正常显示还是报错之类的;
8. 如果浏览器未禁止缓存,那么数据就会被缓存到浏览器;
9. 浏览器解释响应
10. 浏览器判断显示什么
11. 浏览器会打开页面或则下载数据等等完成响应

上述只是一个 summary,若是需要深入了解还需要多去学习,多了解一下http、HTTPS,想看书的同学推荐一下图解HTTP,确实不错,可以看看。

最后再来补充一下HTTP状态码:
1XX:临时响应(其中101是切换协议)
2XX:成功
3XX:重定向(303:查看其它位置,301永久移动)
4XX:请求错误(400:语法错误;404:Not Found;408:请求超时;)
5XX:服务器错误(500:server遇到错误,无法完成请求)

猜你喜欢

转载自blog.csdn.net/junjunaijiji/article/details/74680400