HTTP-了解HTTP协议(一)
一、浏览器背后的故事
? 当我们使用浏览器浏览某个网页时,会在浏览器中输入”www.baidu.com“网址打开百度网页,而输出网址之后,浏览器发生了什么呢?
? 简单的说,有以下几步:
- 当输入网站之后(即域名),浏览器会对这个网址进行DNS域名解析,解析为IP地址
- 然后通过IP地址进行访问百度的服务器,浏览器会发送HTTP请求
- 服务器接收到请求并处理,然后会响应浏览器,浏览器得到响应数据之后对其进行解析渲染
1.HTTP
- 超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器
- HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
2.Web与HTTP
- WEB是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统
- 建立在Internet上的一种网络服务,为浏览者在网络上查找和浏览信息提供了直观界面。
二、透过TCP/IP看HTTP
1.TCP/IP协议族
- TCP/IP协议其实是一系列与互联网相关联的协议集合起来的总称
- 分层管理是TCP/IP协议的重要特征
2.TCP/IP协议族分层
- TCP/IP协议组是由一个四层协议组成的系统,这四层分别为:应用层、传输层、网络层和数据链路层
- 应用层:一般是我们编写的应用程序,决定了向用户提供的应用服务。应用层可以通过系统调用与传输层进行通信,如:FTP、DNS、HTTP等
- 传输层:传输层通过系统调用向应用层提供处于网络连接中的两台计算机之间的数据传输功能,在传输层有两个性质不同的协议:TCP和UDP
- 网络层:网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(传输路线)到达对方计算机,并把数据包传输给对方
- 链路层(网络接口层):链路层用来处理连接网络的硬件部分,包括控制操作系统、硬件设备驱动、NIC(网络适配器)以及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。
3.数据包的封装过程
4.HTTP数据传输过程
- 发送端发送数据时,数据会从上层传输到下层,且每经过一层都会被打上该层的头部信息。而接收端接收数据时,数据会从下层传输到上层,传输前会把下层的头部信息删除。
三、DNS域名解析
? 当我们在浏览器中输入网址(域名)时,浏览器会首先通过DNS服务器对域名进行解析,解析成IP地址,然后通过IP地址给WEB服务器发送HTTP请求。
DNS解析过程
- DNS先会检查本机中hosts文件中是否存在这个域名的映射,如果能够查到域名对应的IP,那么会直接访问
- 若本地hosts文件中不存在,则会在本机DNS解析器缓存中进行查找,如果查到,那么会直接访问
- 若在本机DNS解析器缓存中查询不到,那么就会向本地DNS服务器(TCP/IP参数中设置的首选DNS服务器)进行请求获取IP地址
- 若本地DNS服务器获取不到IP地址,那么就会进行转发,向上一级DNS服务器发送进行解析
|