1.在浏览器输入url地址
2.浏览器查找缓存
浏览器会查找浏览器缓存,系统缓存,路由缓存,如果没有的话继续下一步,如果有的话,直接显示。
note:浏览器会把访问过的web网站资源缓存起来,而判断是否使用缓存的条件有以下几种:
①是否存有这个网站的缓存
②这个网站的缓存是否过期,具体看Cache-Control里的缓存的有效期
③跟服务器进行协商是否使用缓存,如果上次缓存的时候有Last-modified和Etag字段,本次请求就会加上If-Modified-Since(上次请求资源的时间)和If-None-Match(上次资源的修改时间)
3 通过DNS获取url对应的ip地址
先在本机的host文件里查找有没有url对应的ip,如果没有就请求DNS进行IP地址的获取
4 建立TCP链接
http是基于tcp的应用层协议,因此在http工作之前需要客户端与服务器端建立链接(三次握手)。
5 浏览器向web服务器发送请求
一旦建立链接,浏览器就可以给web服务器发送请求命令
6 浏览器给web服务器发送请求头信息
浏览器在发送了请求后,还要给web服务器请求头信息,比如accept-charset(浏览器端指定的字符集),最后发送一个空的请求头代表请求发送完毕,注意:如果是post提交,则会继续提交请求体
7 web服务求进行应答
应答的第一部分是http版本号,第二部分是协议的状态码,比如:HTTP/1.1 200 OK
8.web服务器发送应答头消息
web服务器给浏览器发送应答头消息,也就是关于web服务器自己的信息,最后发送一个空白行代表应答结束
9.web服务器发送数据
以应答头里面的content-type所描述的格式发送数据
10.web服务器关闭链接
web服务器向浏览器发送了应答数据之后,就要关闭tcp链接(tcp四次握手关闭链接),如果添加了connection:keep-alive,那么就还会保持链接状态