在了解http协议之前我们先了解一下什么是通信和通信协议
- 通信:信息的传递和交换,通信有三要素:通信的主体,通信的内容,通信的方式
- 通信协议:通信的双方所必须要遵守的约定好的格式来发送或者接收
- 网页内容的传输协议:在互联网上,客户端和服务器端之间实现网页内容的传输所遵守的协议,又称为网页内容传输协议,简称http协议
当客户端发起请求给服务器端是称为http请求;客户发送到服务器之间的消息称为http请求消息,又称请求报文
http请求消息
四个部分:
- 请求行
- 请求头部
- 请求体
- 空格
请求行
- 请求方式
- url
- http协议版本
请求头部
描述客户端基本信息把内容告知服务器,通常以键值对的格式用冒号隔开
常见的请求头部字段有:
Accept 客户端识别的响应内容类型列表
user-agent 产生请求的客户端浏览器类型
Content-type 客户端告知服务器请求发送的数据类型
Accept-Encoding 客户可以接收的额内容压缩编码的形式
Accept-Language 用户期望获得的自然语言的优先顺序
参考文档 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers
注意:
在最后一个请求头部字段后面是一个空行,用来分隔请求头部和请求体,通知服务器请求头部结束
请求体
通过post方式提交至服务器的数据,所以get请求是没有请求体的只有post有请求体
http响应消息
服务器响应给客户端的消息内容,又称响应报文
四个部分
- 状态行 : http协议版本 空格 状态码 空格 状态码描述
- 响应头部: 描述服务器的基本信息,由行键值对的形式组成,用冒号隔开
- 响应体 :服务器响应客户端额的资源的内容
- 空格
注意:
在最后一个请求头部字段后面是一个空行,用来分隔请求头部和请求体,通知服务器请求头部结束
响应头部请参考:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers
http请求方法
- GET
GET方法请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据. - HEAD
HEAD方法请求一个与GET请求的响应相同的响应,但没有响应体. - POST
POST方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用. - PUT
PUT方法用请求有效载荷替换目标资源的所有当前表示。 - DELETE
DELETE方法删除指定的资源
除了上述的四个方法外还有很多
请参考文档
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods
http响应状态码
刚才在响应消息中的状态行里有状态码,看似很陌生实际上很简单,他是用来标识响应的状态的每一班有三个十进制的数字组成,第一个数字定义了状态码的类型
相信大家在浏览网页时会出现到"404"、"302"、"304"等,通常以“2”开头,代表请求成功并处理。
具体状态码和状态码描述可以看文档:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status