输入网址,再按回车后面会发生:a.域名解析;b.发起TCP的3次握手;c.建立TCP连接后发起http请求;d.服务器端响应http请求,浏览器得到html代码;e.浏览器解析html代码,并请求html代码中的资源;f.浏览器对页面渲染呈现给用户。
一、输入网址,再按回车后面发生了什么
输入网址,再按回车后面会发生:a.域名解析;b.发起TCP的3次握手;c.建立TCP连接后发起http请求;d.服务器端响应http请求,浏览器得到html代码;e.浏览器解析html代码,并请求html代码中的资源;f.浏览器对页面渲染呈现给用户。
总体的访问过程
首先会进行DNS解析,然后解析得到地址之后客户端和web服务器会建立一条TCP连接,其中有一个TCP三次握手过程,当完成握手之后客户端就会向浏览器发送一条请求报文,服务器然后进行响应,接着当数据传输完之后,服务器和客户端有一个TCP四次挥手过程,来结束连接。
dns解析流程
在浏览器中输入网址回车后,首先系统会去找这个域名对应的ip,然后再根据这个ip地址查找web服务器,
这里面有个DNS解析流程
1、系统首先查找本地的DNS缓存和hosts文件信息,确认是否有www.baidu.com对应的ip地址,如果有就直接访问这个ip地址对应的www.baidu.com web服务器
2、如果没有,那么系统会将解析请求发送给本机网卡指定的DNS服务器,称为LDNS(本地dns),如果本地DNS服务器中有域名www.baidu.com所对应的的ip地址,就会去访问这个IP对应的web服务器,如果没有就去请求其他DNS服务器
3、LDNS服务器会从根域名服务器开始对于域名www.baidu.com的解析,全球有13台根服务器,根域名服务器没有www.baidu.com的解析记录,有.com拔尖域的解析记录,然后把.com所对应的DNS服务器地址返回给LDNS服务器
4、LDNS获取到.com的DNS服务器地址之后,就去.com服务器请求www.baidu.com域名的解析,.com里面也没有www.baidu.com域名对应的地址,但是有baidu.com域名的解析记录,然后.com服务器将baidu.com对应的DNS服务器地址返回给LDNS,
5、同理LDNS去找baidu.com的DNS服务器请求www.baidu.com的域名解析,然后baidu.com域名DNS服务器将www.baidu.com地址对应的IP解析记录发送回给LDNS
6、LDNS把解析出的结果www.baidu.com对应的ip地址发送给客户端的浏览器,然后也记录到缓存中
延伸阅读:
二、请求报文有什么
请求报文包括:请求行,请求头部,空白行,请求报文主体
请求行:
用来说明客户端想要做什么,内容包括方法字段(请求方法包括:GET:请求指定资源,HEAD,请求响应报文的首部,
POST:提交数据到服务器,PUT:传送的数据取代指定的文档内容,DELETE:删除Request-URI所标识的资源,MOVE:移动)、URL字段以及HTTP协议版本(最开始的0.9版本,后来又有了1.0,1.1,2.0,其中1.1是主流)
请求头:
通过客户端把请求的相关信息发给服务器,内容包括媒体类型,语言类型,主机名等信息
空行:
告诉服务器空行以下内容不属于请求头部信息
请求报文主体:
用来说明客户端具体想要做的事情