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的技术博客)