一次完整的http请求与响应都发生了什么:

  • 在浏览器窗口输入网站的url地址

  • 浏览器查找缓存[1]
    浏览器会查找浏览器缓存、系统缓存、路由缓存,如果没有则进行下一步,如果有的话就直接显示

  • 通过DNS服务器获取对应的ip地址
    先查找本机的host文件中查找是否有该url对应的ip地址,如果没有就请求DNS获取ip地址

  • 浏览器与ip地址对应的服务器建立TCP连接

  • 浏览器向web服务器通过http协议发送请求
    浏览器在发送请求之后还要给web服务器发送请求头信息

  • web服务器进行应答并接着发送数据
    web服务器也会给浏览器发送应答头信息

  • web服务器关闭链接,施放TCP连接
    通过tcp四次挥手关闭链接,注意如果添加了connection:keep-alive,就会保存链接状态

  • 浏览器显示页面

[1]判断是否使用缓存

1.是否有这个网站的缓存
2.这个网站的缓存是否过期
3.与服务器协商是否使用缓存