从url到页面加载浏览器做了什么?
从输入url到页面加载发生了什么?
1.DNS解析
DNS解析是一个递归查询的过程。DNS解析的过程就是寻找哪台机器上有你需要资源的过程,当你在浏览器中输入一个地址时,www.baidu.com。其实不是百度网站真正意义上地址,互联网上每一台计算机的唯一标示时它的IP地址,但是IP地址并不方便记忆。用户更喜欢用方便记忆的网址去寻找互联网上其它计算机,页就是上面提到的百度网址。所以互联网设计者需要在用户的方便性与可用性做一个权衡。这个权衡就是一个网址到IP地址的转换,这个过程就是DNS解析。实际充当翻译角色。
首先在本地域名服务器中查询地址,如果没有找到情况下,本地域名服务器会向根域名服务器发送一个请求,如果根域名服务器也不存在该域名时,本地域名会向com顶级域名服务器发送一个请求,一次类推下去,直到最后本地域名服务器得到baidu的IP地址并把它缓存到本地,方便下次查询使用。
网址解析时一个从右到左过程com ->baidu.com ->www.baidu.com 所有网址真正的解析过程为: . -> .com -> baidu.com -> www.baidu.com
DNS优化
DNS缓存
DNS存在这多级缓存,从离浏览器的距离排序的话有以下几种:浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。
2.TCP连接
HTTP协议是使用TCP作为数据传输协议的,通过三次握手建立安全可靠的连接通信。
3.发送HTTP请求
发送HTTP请求的过程就是构建HTTP请求报文并够通过TCP协议中发送到服务器指定端口,HTTP请求由三部分组成:请求行,请求报头,请求正文。
请求行:方法 url http-ersoin crlf
方法有:GET POST PUT DELETE OPTIONS HEAD
GET POST区别?
get用户信息获取,而且应该时安全的和幂等的。它用户获取信息,只是获取查询数据,页就是说它不会修改服务器上的数据,从这点来讲它时数据安全的。
post可以向服务器发送修改请求,从而修改服务器,比方说微妙要在论坛上回帖博客上评论,就要用到post了。
请求报头
请求报头允许客户端向服务器传递请求的附加信息和客户端自身的信息
常见的请求报头有:accept,accept-charset,accept-encoding,acceptlanguage,content-type,authorization,cookie,user-agrent等
请求正文
当使用post,put等方法时,通常需要客户端向服务器传递数据,这些数据就存储在请求正文中。在请求包头中有一些与请求正文相关的信息。例如现在的web应用常常采用rest架构,请求数据格式为json。这时就需要设置content-type:application/json
4.服务器处理请求并返回HTTP报文
5.浏览器解析渲染页面
6.连接结束
最新文章
- 学习winform第三方界面weiFenLuo.winFormsUI.Docking.dll
- cs11_c++_lab5待修改
- Rabbitmq -Publish_Subscribe模式- python编码实现
- Angular系列----AngularJS入门教程04:迭代器过滤(转载)
- Backbone.js学习之View
- opai_suki
- TCP/IP 邮件的原理
- 用于编译cm-12.0 的 local_manifest.xml文件
- 201521123030 《Java程序设计》第7周学习总结
- html 自定义标签使用实现方法
- rem与@media 的优缺点
- 在CYGWIN下编译和运行软件Bundler ,以及PMVS,CMVS的编译与使用
- bjtu 1819 二哥求和(前缀和)
- Python 的xlutils模块
- 谈谈 iOS 中图片的解压缩
- android底部菜单栏的编写
- 2018秋寒假作业6- -PTA编程总结3
- Tronado
- ArcGIS API for JavaScript
- PSP(3.13——3.15)以及周记录