推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 肯定会 > 你在chrome浏览器地址栏中输入baidu.com回车后发生了什么

你在chrome浏览器地址栏中输入baidu.com回车后发生了什么

肯定会 2018-04-25






浏览器是我们上网必备的工具之一,每当我们需要查询资料的时候,我们就会通过浏览器去访问相应的网站,或者当你寂寞难耐的时候,也许会关上窗门,然后通过浏览器去访问你收藏已久的域名,打开他的在线网站...


你在chrome浏览器地址栏中输入baidu.com回车后发生了什么


emmmmmm..

01



你在chrome浏览器地址栏中输入baidu.com回车后发生了什么



02



你在chrome浏览器地址栏中输入baidu.com回车后发生了什么

DNS的查找过程是这样的:

chrome浏览器会先查找有没有缓存的DNS记录,如果在浏览器缓存没有找到需要的记录,就会去做一个系统的调用,获取系统缓存的记录;

如果没有记录请求会继续到路由器上,路由器上有自己的DNS缓存;

如果没有记录就会到ISP的DNS缓存中查看记录;


03


浏览器给baidu服务器发送一个HTTP请求


你在chrome浏览器地址栏中输入baidu.com回车后发生了什么


 
   
   
 
  1. Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

  2. Accept-Encoding:gzip, deflate, br

  3. Accept-Language:zh-CN,zh;q=0.8

  4. Cache-Control:no-cache

  5. Connection:keep-alive

  6. Cookie:PSTM=1506157985; BIDUPSID=DA662DF344C147D17FB4828CCD795292; ...

  7. Host:www.baidu.com

  8. Pragma:no-cache

  9. Upgrade-Insecure-Requests:1

  10. User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36

其中

  • User-Agent是向baidu服务器提供浏览器的类型,操作系统版本,浏览插件,浏览器语言等信息。

  • Accept是告诉服务器说我们需要接收的类型是什么样子的

  • Connection:keep-alive 是为了后边请求不要关闭TCP连接

  • Cookie 是以文本形式存储,每次请求的时候就会发送给服务器,它可以存储用户的状态,用户名等信息


04


baidu服务器301重定向响应


你在chrome浏览器地址栏中输入baidu.com回车后发生了什么

因为刚刚我们在chrome浏览器中输入的是baidu.com而不是www.baidu.com,这时候baidu服务器就会将我们的请求响应一个301永久重定向到www.baidu.com。


05



你在chrome浏览器地址栏中输入baidu.com回车后发生了什么


06


baidu服务器处理请求

baidu服务器在这个时候接收到了请求,它会去查看请求它的参数还有cookie信息,然后会进行一些操作处理,例如对数据进行存储,从数据库中获取需要被请求的数据等。


07


baidu服务器返回HTML响应


当baidu服务器处理好之后,就会给浏览器返回数据了,这个时候会有一个Response Headers发送给浏览器:

 
   
   
 
  1. Bdpagetype:1

  2. Bdqid:0xddf2be49000b5995

  3. Bduserid:0

  4. Cache-Control:private

  5. Connection:Keep-Alive

  6. Content-Encoding:gzip

  7. Content-Type:text/html; charset=utf-8

  8. Cxy_all:baidu+09720a4fa84e5493ae7506a57de6bc05

  9. Date:Sat, 14 Oct 2017 09:39:32 GMT

  10. Expires:Sat, 14 Oct 2017 09:39:32 GMT

  11. Server:BWS/1.1

  12. Set-Cookie:BDSVRTM=49; path=/

  13. Set-Cookie:BD_HOME=0; path=/

  14. Set-Cookie:H_PS_PSSID=1440_13551_21103_24658; path=/; domain=.baidu.com

  15. Strict-Transport-Security:max-age=172800

  16. Transfer-Encoding:chunked

  17. Vary:Accept-Encoding

  18. X-Powered-By:HPHP

  19. X-Ua-Compatible:IE=Edge,chrome=1

Response Headers说明了是否缓存这个页面,怎么去解释响应信息,cookie的设置,隐私信息等。 其中

  • Content-Encoding:gzip告诉浏览器整个响应体是用gzip算法压缩的。

  • Content-Type:text/html; charset=utf-8 告诉浏览器将响应的内容以HTML的形式呈现出来,字符集是utf-8。



08


chrome浏览器显示baidu页面

这时候chrome浏览器获得了响应内容,就开始显示baidu的HTML页面了,浏览器在显示的时候,发现需要获取其他的标签内容,比如图片、css样式表、JavaScript文件,那么浏览器就会继续对baidu服务器去发送请求这些内容,这些静态的文件baidu会把它进行缓存,利用内容分发网络(CDN)进行分发,所以这些静态文件在很多CDN数据中心都有备份,所以浏览器很快就能获取到这些静态文件。

从而进行页面吧的完整的显示:


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《你在chrome浏览器地址栏中输入baidu.com回车后发生了什么》的版权归原作者「肯定会」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注肯定会微信公众号

肯定会微信公众号:gh_2789de210a00

肯定会

手机扫描上方二维码即可关注肯定会微信公众号

肯定会最新文章

精品公众号随机推荐