http通过域名访问服务器过程

1.域名解析

  • 首先你在客户端(浏览器)输入一个域名:www.baidu.com,然后就要对这个域名进行解析。客户端向本地的DNS服务器发起一个请求,本地DNS服务器 首先会查看缓存记录,就是域名与ip的对应关系。如果缓存中有该条记录(有输入的域名),就会将对应ip返回给客户端。
  • 本地DNS服务器缓存中没有记录,本地DNS服务器就会向根DNS服务器发起请求,根DNS服务器中有域名与ip的对应关系记录,如果根DNS服务器中有该条记录(有输入的域名),就会将对应ip返回给客户端。
  • 根DNS服务器中没有域名与ip的对应关系记录,它会返回给本地DNS服务器一条消息,你可以向 .com域服务器发请求。
  • .com域服务器收到请求后也不会直接返回域名与ip的对应关系。而是将域名的解析器的地址告诉本地DNS服务器,本地DNS服务器收到这条消息后,就向域名解析服务器发起请求,域名解析服务器将查询结果返回给本地DNS服务器。

(注:本地DNS服务器这时候要做两件事,一是将结果返回给客户端,另一件事更新本地缓存,将这个记录保存在缓存中)

2.建立TCP链接(三次握手)

  • 第一次:客户端发送初始序号x和syn=1请求标志

  • 第二次:服务器发送请求标志syn,发送确认标志ACK,发送自己的序号seq=y,发送客户端的确认序号ack=x+1

  • 第三次:客户端发送ACK确认号,发送自己的序号seq=x+1,发送对方的确认号ack=y+1
    在这里插入图片描述

3.发送http请求报文

  • TCP建立连接成功,浏览器向web服务器发送一条HTTP请求报文(请求行、请求头部、空行、请求数据)

空行的作用是通过一个空行,告诉服务器请求头部到此为止。

在这里插入图片描述

4.接收http响应报文

  • 请求后返回HTTP响应报文(响应行、响应头、空行、响应体)

空行的作用是通过一个空行,告诉服务器请求头部到此为止。

在这里插入图片描述

5.断开TCP连接(四次挥手)

  • 第一次挥手:客户端发出释放FIN=1,自己序列号seq=u,进入FIN-WAIT-1状态
  • 第二次挥手:服务器收到客户端的后,发出ACK=1确认标志和客户端的确认号ack=u+1,自己的序列号seq=v,进入CLOSE-WAIT状态
  • 第三次挥手:客户端收到服务器确认结果后,进入FIN-WAIT-2状态。此时服务器发送释放FIN=1信号,确认标志ACK=1,确认序号ack=u+1,自己序号seq=w,服务器进入LAST-ACK(最后确认态)
  • 第四次挥手:客户端收到回复后,发送确认ACK=1,ack=w+1,自己的seq=u+1,客户端进入TIME-WAIT(时间等待)。客户端经过2个最长报文段寿命后,客户端CLOSE;服务器收到确认后,立刻进入CLOSE状态
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值