一、Http协议
Http协议,即超文本传输协议。所谓协议,是指计算机网络中进行数据交换而建立的规则、标准或约定的集合。说的简单些,就是协议定义了两台计算机之间的通信规则,通过协议,就可以达到互相通信的目的。
HTTP协议的主要特点可以概括如下:
(1)简单:客户向服务器请求服务时,只需传送请求方法和路径
请求方法常用的有GET,HEAD、POST,每种方法规定了客户与服务器联系的不同类型,由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
(2)灵活:HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记。
它的请求响应模式为:客户端每次向服务器发起一个请求时都建立一个连接,服务器处理玩客户的请求即断开连接
(3)无状态:HTTP协议是无状态协议,无状态是指协议对于事务的处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
二、Http原理
1.HTTP协议在TCP/IP协议簇中的位置
应用层(HTTP/HTTPS) |
传输层(TCP) |
网络层(IP) |
数据链路层 |
在Internet中所有的传输都是通过TCP/IP进行的,HTTP协议作为模型TCP/IP模型中应用层的协议也不例外,通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。HTTP在网络中的层次如上图所示。
通常情况下,HTTP的保留端口号是80,HTTPS的端口号为443.
2.HTTP工作原理
通过上面的知识可以看出,HTTP是基于传输层的TCP协议,而TCP是一个端到端的面向连接的协议。所谓的端到端可以理解为进程到进程之间的通信。所以HTTP在开始传输之前,首先需要建立TCP连接,而TCP连接的过程需要所谓的“三次握手”。在TCP的三次握手之后,建立了TCP连接,此时HTTP就可以进行传输了。