HTTP 全称是「超文本传输协议」,是一个「客户端」和「服务端」之间传输数据的通信协议。
什么是HTTP?
HTTP 全称是 「超文本传输协议」,是一个「客户端」和「服务端」之间传输数据的通信协议。
- 文本:指的是
HTML,以文本的方式传输页面; - 超文本:扩展性文本,指的是带有链接的
HTML; - 协议:是一个通信规则协议。
一次HTTP请求响应
「浏览器/APP」 向 「服务器」 发起请求,「服务器」 响应给 「浏览器/APP」,是一次完整的 HTTP 请求。
HTTP请求报文和响应报文
请求报文
一个请求报文包括三部分:
- 请求头: 包括
请求方法、path和HTTP版本; - Header:包括
Host、Content-Type、Content-Length等; - Body:只有
POST、PUT两种请求方法才有Body。

响应报文
一个响应报文也包括三部分:
- 响应头: 包括
HTTP版本、状态码、状态信息; - Header:包括
Content-Type、Content-Length等; - Body:都可以有
Body。

请求方法和状态码
请求方法:
GET:获取资源,没有Body,幂等;POST:增加或修改资源,有Body,不幂等;PUT:修改资源,有Body,不幂等;DELETE:删除资源,没有Body,幂等;HEAD:跟GET一样,但是只获取Header,可以查看资源信息。
状态码:
1xx:临时性消息(101:切换协议);2xx:请求成功,如200;3xx:重定向(301:资源永久迁移;302:资源临时迁移);4xx:客户端错误(401:未授权;404:资源不存在);5xx:服务器错误。
Header和Body
常见Header的作用:
Host:不是用来定位主机的,主机是通过DNS查询定位的。Host是用来定位主机里面的某个子主机(虚拟主机);Content-Length:记录数据长度;Content_type:数据类型;text/html:文本类型;application/x-www-form-urlencoded:普通表单;multipart/form-data;boundry=xxx:有二进制文件的表单,boundry是分隔符;application/json:JSON格式数据;image/jpeg:单图片数据;
Location:重定向地址;User-Agent:告诉服务器是一个怎样的客户端;Accept-Range/Ragne:获取指定范围的数据;Cookie/Set-Cookie:设置Cookie;Authorization:授权信息。
RESTful HTTP
RESTful 是一种风格,正确使用 HTTP 就是 RESTful HTTP 了。
每个
URL指向一个「资源」,通过GET/POST/PUT/DELETE这些动作对「资源」进行处理。
完毕。
公众号:JairusTse的日常
(转载本站文章请注明作者和出处 JairusTse的技术博客)