在浏览器中输入url地址 ->> 显示主页的过程
1、DNS解析(域名解析)
举例:查找www.google.com的ip地址,先从本地域名服务器查询,如果查不到,依次向根域名服务器、com顶级服务器查询,直到找到google.com域名服务器,这时为了以防下次查询这么麻烦,直接存到DNS高速缓存中,不仅本地有缓存(DNS存在着多级缓存,从离浏览器的距离排序的话,有以下几种: 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。)
补充:后台不止有一台服务器,有好多,根据每台机器的负载量,该机器离用户地理位置的距离等等,这种过程就是DNS负载均衡,又叫做DNS重定向。
2、建立TCP连接
三次握手、四次挥手
3、发送HTTP请求
其过程就是构建HTTP请求报文,并通过TCP协议,发送到服务器的指定端口(HTTP 8080 HTTPS 443)
(1)HTTP请求报文结构:请求行、请求报头、请求正文
请求行
eg: GET index.html HTTP/1.1
请求报头(请求报头允许客户端向服务器传递请求的附加信息和客户端自身的信息。)
Authorization, Cookie,
请求正文
当使用POST, PUT等方法时,通常需要客户端向服务器传递数据。这些数据就储存在请求正文中。在请求包头中有一些与请求正文相关的信息
(2)HTTP响应报文也是由三部分组成: 状态码, 响应报头和响应报文。
状态码
状态码是由3位数组成,第一个数字定义了响应的类别,且有五种可能取值:
-
1xx:指示信息–表示请求已接收,继续处理。
-
2xx:成功–表示请求已被成功接收、理解、接受。
-
3xx:重定向–要完成请求必须进行更进一步的操作。
-
4xx:客户端错误–请求有语法错误或请求无法实现。
-
5xx:服务器端错误–服务器未能实现合法的请求。
补充:
301和302的区别:
301重定向是页面永久性转移,表示为资源或页面永久性地转移到了另一个位置,搜索引擎在抓取新内容的同时也将旧的网址替换成重定向之后的网址;
302重定向是页面暂时性转移,示资源或页面暂时转移到另一个位置 ,搜索引擎会抓取新的内容而保存旧的网址并认为新的网址只是暂时的。
响应报头
常见的响应报头字段有: Server, Connection…。
响应报文
服务器返回给浏览器的文本信息,通常HTML, CSS, JS, 图片等文件就放在这一部分。
4、浏览器解析渲染页面