HTTP简介
HTTP是我们非常熟悉的协议,叫做超本文传输协议,也就是我们浏览网页需要的协议。
HTTP的本质是通过默认端口80的TCP来传输数据。
HTTP是请求-回答机制。客户端请求数据,服务器然后响应数据。
服务器不能主动发送数据给客户端
HTTP报文介绍
HTTP报文的格式如下:
HTTP报文主要由 起始行、头部、BODY三部分组成
HTTP报文又细分为请求包和响应包。
请求包
1、 请求行 包括 Method(GET、POST、DELETE、PUT),URI(资源在目标主机上的绝对路径)、Version(HTTP的版本,1.1,2.0,3.0)
2、 请求头 基于Key-Value,不同属性之间用 换行符隔开
3、 body body和请求行之间用一个空行隔开,body就是实际要传输的数据。
响应包
1、状态行 version(HTTP版本)、Status Code (状态码200、404、500等)、Reason(状态描述)
2、响应头 也是基于Key-Value,每个属性之间用CTLF换行符隔开
3、 body body与响应头之间也用换行符隔开。
头部字段详解
HTTP中头部字段基于Key-Value,用来携带信息,用户也可以往里面自定义对应的属性。
字段主要分为三类:请求字段、响应字段、通用字段
1、请求字段
请求字段是请求头专用的字段。
Host
想要请求的主机的地址。
**1、**IP+端口
**2、**域名+端口
端口可以省略,如果省略的话,为默认的端口80
和请求行中的URI合并为真正的URL
User-Agent
HTTP的代理,也就是浏览器的类型
Accept
请求希望接收的数据类型
2、响应字段
响应字段是响应头专用的字段
Expires
响应包的过期时间
Server
服务器的名字
3、通用字段
通用字段是既可以在请求头使用又可以在响应头中使用的字段
Content-Type
Body的数据格式
Content-Length
Body的长度