http协议学习笔记(一)

207 阅读5分钟

地址栏输入了一个域名,点击回车,这个过程经历了什么?

image.png

宏观上讲,在地址栏输入一个域名,通过这个域名寻找目标服务器对应的ip地址,这个过程依靠的是一个dns服务器,通过dns服务器来解析查询域名所映射的ip地址,而通过ip地址跟web服务器进行通讯,而通讯的协议就是http协议

web服务器收到用户的请求后,会去后端执行,执行结果以响应报文的形式回传给浏览器,浏览器收到的是莫名的报文,只有程序员看的懂,所以需要浏览器在进行渲染,渲染完成后就可以看到。渲染过程,解析html,执行加载逻辑,包括页面加载需要的外界文件,包括js、css等,绘制图层

什么是http协议?它与见到的web网站有什么关系?

大名叫超文本传输协议(HTTP),是一种通信协议,它允许将超文本标记语言(HTML)文档从web服务器传送到客户端的浏览器

web是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统 我们所访问的网站,都是建立在Internet上的一种网络服务,为浏览者在internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构

HTTP协议结构

HTTP协议是构建在TCP/IP协议之上的,是TCP/IP协议的一个子集。 TCP/IP协议是一系列与互联网相关的协议集合的总称。是有一个四层协议组成的系统,这四层分别为:应用层、传输层、网络层和数据链路层

image.png 应用层:一般指编写的应用程序,决定了向用户提供的应用服务。应用层可以通过系统调用与传输层进行通信。eg:FTP、DNS、HTTP等。

传输层;通过系统调用向应用层提供处于网络连接中的两台计算机之间的数据传输功能。在传输层有两个性质不同的协议:TCP和UDP。TCP是面向连接的,可靠,但是效率低,UDP是无连接的,效率高,但可靠性稍微高点

image.png

TCP三次握手:
使用TCP协议进行通信的双方必须先建立连接,然后才能开始传输数据。为了确保连接双方可靠性,在双方建立连接是,TCP协议采用了三次握手策略。
第一次握手:客户端发送带有SYN标志的连接请求报文段,然后进入SYN_SEND状态,等待服务端的确认。
第二次握手:服务端接收到客户端的SYN报文段后,需要发送ACK信息对这个SYN报文段进行确认。同时,还要发送自己的SYN请求信息、服务端会将上述的信息放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务端将会进入SYN_RECV状态。
第三次握手:客户端接收到服务端的SYN+ACK报文段后,会向服务端发送ACK确认报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手

网络层:用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(传输路线)到达对方计算机,并把数据包传输给对方

链路层:用来处理连接网络的硬件部分,包括控制操作系统、硬件设备驱动、NIC(Network interface Card,网络适配器)以及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内

DNS的作用

通常访问一个页面,通过域名或者主机名访问,因为相对于IP地址(一组纯数据),域名更让人记住。但TCP/IP协议使用的是IP地址进行访问的,所以必须有个机制或服务把域名转换为IP地址。DNS就是解决这个的,它提供域名到IP地址之间的解析服务

image.png

DNS的解析

遵守的是就近原则;首先本地电脑,会将经常访问的域名和ip地址建立关系,并且保存到系统文件里面,正常情况下,在进行DNS解析的时候,系统会优先从我们host文件里优先寻找ip地址。若找到,优先使用host文件里的地址;若本地host里没有找到域名对应的ip映射,则系统会去向本地的DNS服务器发送请求去查询ip地址,若本地DNS服务器也没用找到,会一层一层向上一级DNS发送请求,直到根服务器,找到后就会回传。

HTTP协议特点

1.支持客户/服务器模式:客户端向服务器发送请求,服务器端响应请求,并进行响应服务 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、POST等,每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通讯速度很快 3.灵活:HTTP允许传输任意类型的数据对象 4.无连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,从而节省了传输时间 5.无状态:http协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。