浏览器访问服务器的流程
1、浏览器输上域名,例如www.baidu.com
2、浏览器会先访问DNS服务器,把域名解析成ip地址,在返回给浏览器
2)DNS的解析原理:
原理步骤:
1)系统首先会查找本地的DNS缓存和hosts文件信息,确认其中是否有与,域名www.baidu.com所对应的IP地址。如果有,就直接访问这个IP地址所对应的www.baidu.com域名服务器。
2)如果没有找到,那么,系统将会把浏览器的解析请求发送给本地主机所指定的DNS服务器,称为LDNS。如果LDNS服务器中有域名www.baidu.com所对应的IP地址,则返回给客户端的浏览器,如果没有,则继续请求其他DNS服务器。
3)LDNS服务器会从DNS系统的根(.)开始请求对域名www.baidu.com的解析。根DNS服务器全球只有13台,根域名服务器是没有域名www.baidu.com解析记录的。但是它会有域名www.baidu.com所对应的顶级域.com的解析记录,因此直接把顶级域.com所对应的DNS地址返回给LDNS服务器。
4)LDNS服务器获取到顶级域.com对应的DNS服务器地址后,就会去.com服务器请求对www.baidu.com域名的解析。在顶级域名服务器也不会有www.baidu.com的解析记录的。但是它有www.baidu.com的父级域名的解析记录,即baidu.com。因此顶级域名.com服务器又会把baidu.com所对应的DNS服务器的IP地址返回给LDNS。
5)LDNS服务器收到baidu.com所对应的IP地址后,就会去baidu.com域名服务器请求对www.baidu.com的域名解析。Baidu.com域名对应的DNS服务器是该域名的授权DNS服务器。这个DNS服务器就是企业购买域名时用于管理解析的服务器。
6)baidu.com域名DNS服务器会吧www.baidu.com域名所对应的IP地址给解析出来,然后发给LDNS。
7)LDNS把解析出来的结果,www.baudu.com所对应的IP地址发送给客户端的浏览器。并且LDNS也会将其域名和对应的地址缓存到cache中。
8)客户端浏览器收到后,也会将其域名以及对应的IP地址缓存的到DNS缓存和hosts文件中。
3、浏览器从ip中解析出端口号
4、浏览器通过解析后得到的ip和端口号来与web服务器建立一条TCP通道连接(三次握手)
2、TCP/IP协议的介绍和三次握手及四次挥手
1)说说TCP/IP协议是什么
Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
5、建立TCP连接之后,浏览器向web服务器发送一条HTTP请求报文。
1)请求行
作用:用来说明客户端想要做什么。
内容:包括方法字段GET和URL字段以及HTTP协议版本
2)请求头
作用:通过客户端把请求的相关信息发给服务器
内容:包括媒体类型、语言类型、支持压缩、客户端类型、主机等信息。
3)空行
作用:告诉服务器空行以下内容不属于请求头部信息。
4)请求报文主体
作用:用来说明客户端具体想要做的事情。
内容:查看信息、应用post方法。
6、web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。
1)状态行
作用:用来说明服务端响应客户端的状态。
内容:包括洗衣及版本号、数字状态码、状态情况
2)响应头
作用:通过服务端把响应的相关信息给客户端
内容:包括Location、server、connect、vary等
3)空行
作用:告诉客户端空行以下内容不属于响应头部信息。
4)响应报文主体
作用:用来装载着要返回给客户端的数据
内容:包括文本、html、视频或者是图片。
7、web服务器关闭HTTP连接,关闭TCP连接,web服务器显示访问的网站内容到屏幕上。