Http-一次完整的Http请求过程

首先进行DNS域名解析(本地浏览器缓存、操作系统缓存或者DNS服务器)

  • a)首先会搜索浏览器自身的 DNS 缓存(缓存时间比较短,大概只有 1 分钟, 且只能容纳 1000 条缓存)
  • b)如果浏览器自身的缓存里面没有找到,那么浏览器会搜索系统自身的 DNS 缓存
  • c)如果还没有找到,那么尝试从 hosts 文件里面去找
  • d)在前面三个过程都没获取到的情况下,就去域名服务器去查找,

(1)三次握手建立TCP连接,TCP的端口是80;发起HTTP请求之前,需要进行TCP连接,HTTP是比TCP更高层次的应用层的协议,TCP是传输层协议。
(2)客户端向服务端发送请求命令GET www.xx.com http/1.1
(3)客户端向服务器发送请求头信息
(4)服务服务器应答器 Http/1.1 200 OK
(5)返回响应头信息
(6)服务器向客户端发送数据
(7)服务器关闭TCP连接
从第二步和第三步我们可以看出,其实客户端向服务器进行一个HTTP请求的时候,请求命令和请求头其实是分两步的,但是我们在写代码的时候,其实看似是组合在一起的。
但是我们的发送请求命令其实就是url和query-params还有http的版本,请求方式
而请求头信息是封装在header中的,这是在请求命令之后