计算机网络:http
一、HTTP 工作过程
- 建立TCP连接
- 客户端发送HTTP请求报文
- 服务器向客户端发送HTTP响应消息
- 服务器关闭TCP连接
二、HTTP报文类型
在前面的文章中我们提到,HTTP报文格式有两种类型,分别为请求报文和响应报文。
请求报文是客户端发送给服务器端的,而响应报文是服务器端发送给客户端的。本篇内容就是介绍一下这两类报文的格式
三、HTTP请求报文
1、请求报文格式
请看例子:
(1)请求行:方法+空格+URI+空格+版本
URI:对资源的标识符
版本:HTTP的版本号。
(2)首部行:首部字段名+空格+值
(3)空行。
(4)HTTP报文的实体。实体前面的东西即请求行、首部行和空行是脑袋,它所起的作用是控制。要传输的东西是放在主体中。这也是很多协议所采用的结构方式
注意:在头部行下面需要有一个额外的回车换行来表示结束。若没有回车换行,则解析报文时会出错
2、请求方法类型
如下图所示
在版本HTTP/1.0中有三个重要的请求方法类型。
(1)GET:客户端向服务器端请求资源
(2)POST:把客户端的信息传送给服务器端
(3)HEAD:服务器收到请求时,用HTTP报文进行响应,但不返回请求对象,主要用在通信的控制操作领域。
在版本HTTP/1.1中除了上述三个还增加了PUT和DELETE方法。
(4)PUT:文件在实体主体中被上载到URL字段指定的路径。
(5)DELETE:删除URL字段指定的文件。
注:向服务器传送信息POST并不是唯一的方法,在当今应用中使用GET方法向服务器中传送数据是更常用的方法。因为可以把要传送的数据以参数的方式写在URL里,使用GET传送过去,这时服务器可以直接在URL里将相关参数提取出来,实现了和POST类同的方法。但是当传送大量数据时还是需要POST方法
三、HTTP响应报文
1、响应报文格式
如上图所示,
(1)状态行:包括版本、状态码和短语。
(2)首部行:包含了重要的控制信息,依次为:
不使用持久连接;
data后面是时间;
服务器的类型或者是Web服务器的版本;
对象最近一次被修改的时间;
对象的长度;
对象的类型;
(3)回车换行;
(4)真正的数据。