HTTP请求过程(重要):
1. 浏览器向DNS服务器请求解析域名对应的IP地址,浏览器先查看自身的DNS缓存有没有对应条目,如果有且未过期,直接从缓存获取;如果浏览器没有,则去操作系统中找DNS缓存;如果都没有则向路由器发送查询请求,路由器中依然没有,则去ISP的本地DNS服务器查找。
2. 浏览器与server建立了TCP连接,port 80,三次挥手:
第一次client(active open)去connect 服务器,发送SYN 假设序列号为J,server是被动打开(passive open);第二次server收到了SYN后,返回一个SYN和一个ACK给客户,
ACK = J + 1,新的SYN序列号是K;第三次client收到SYN=K后,回应给serverACK = K+1。
3. 浏览器给server发送http请求,请求报文包含请求行(request line)、请求头部(headers)、空行(blank line)、请求数据(request body)四个部分。
请求行:请求方法method(常用 get post),URL定位符、协议版本(HTTP/1.0和HTTP/1.1)。
请求头部 :