HTTP 协议的特点
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。
灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
无连接: 限制每次连接只处理一个请求;服务器处理完客户的请求,并收到客户的应答后,立即断开连接;采用这种方式可以节省传输时间。
无状态: HTTP协议是无状态协议;无状态是指协议对于事务处理没有记忆能力;缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大;另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP 报文的组成
请求报文
请求行:
- 数据格式由三个部分组成:请求方法、URI、HTTP协议版本,他们之间用空格分隔。
请求头:
- 紧跟着请求行,该部分主要是用于描述请求正文,是一些 key:value 对,主要是用于说明请求源、连接类型、以及一些Cookie信息等。
空行:
- 它的作用是通过一个空行,告诉服务器请求头部到此为止。
请求体:
- 若方法字段是GET,则此项为空,没有数据
- 若方法字段是POST,则通常来说此处放置的就是要提交的数据
响应报文
状态行:
- 主要给出响应HTTP协议的版本号、响应返回状态码、响应描述,同样是单行显示。
响应头:
- 主要是返回一些服务器的基本信息,以及一些Cookie值等
空行:
- 响应头部和响应体同样也是通过一个空行进行隔开
响应体:
- 为请求需要得到的具体数据,可以为任何类型数据,一般网页浏览返回的为html文件内容