http报文结构解析

1、http协议结构?
2、请求报文和响应报文的区别是?

请求报文和响应报文的区别在于,请求报文是请求行,相应报文是状态行。

3、请求报文和响应报文都是由哪四部分组成的?

1)报文头(initial line),例如GET http://www.baidu.com/favicon.ico HTTP/1.1表示请求http://www.baidu.com/favicon.ico这个文件,用的是HTTP/1.1协议
2)0个或者多个请求头(header line),例如Accept-language: en
3)空行
4)可选消息

请求报文:请求行、首部行,空行,信息主体
响应报文:状态行,首部行,空行,信息主体

4、http是为什么是无状态协议?

无状态协议:http不要服务器保留(记忆)客户端任何状态信息。这样服务器端设计会变的简单。

5、什么是Keep-Alive模式?

我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。

http报文结构解析_第1张图片

http 1.0中默认是关闭的,需要在http头加入"Connection: Keep-Alive",才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入"Connection: close ",才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep- Alive连接就看服务器设置情况。

6、什么决定了请求报文的作用?

(1)方法:所谓的方法就是对请求的对象进行的操作,实际上就是一些命令。所以请求报文的作用和类型由方法决定。


http报文结构解析_第2张图片

(2) url资源定位符:请求方法的操作对象
(3) 版本:http1.0还是http1.1版本。
(4) CRLF:回车空格。
(5) 信息主体:一般请求报文没有信息主体,只有在想服务器发送数据的时候,才会有信息主体。

7、响应报文

(1)响应报文的第一行是状态行:http版本,状态码,短语。
(2)状态行包括:http的版本,状态码,短语。其中,状态码是对客户端的反馈。
(3)短语:用来解释状态码的。

http报文结构解析_第3张图片

服务器给客户端的状态:我知道了,我正在处理;成功了;我还需要其他资源才能处理;你发错了;我不能解决。五种状态。

参考文献:
1、HTTP 的长连接和短连接
2、HTTP长连接和短连接

你可能感兴趣的:(http报文结构解析)