HTTP协议: 超文本传输协议 (Hypertext Transfer Protocol)
HTTP协议用途: 不仅仅是浏览器 和服务端之间使用,服务端和服务端之间使用 ,手机APP和服务端之间,都广泛采用
HTTP版本: 0.9 , 1.0 , 1.1 , 2 , 当前最广泛的使用的是HTTP/1.1版本
HTTP协议最大的特点: 通讯双方分为客户端 和 服务端
HTTP协议目前是基于TCP协议的,所以要进行通讯,客户端必须先和服务端 建立TCP连接.
客户端与服务端创建TCP连接后,客户端发送请求消息到服务端,服务端发送响应给客户端.
HTTP请求消息由下下面几个部分组成:
POST /api/medicine HTTP/1.1
Host: www.baiyueheiyu.com
User-Agent: Mozilla/6.0 (compatible; MSIE5.01; Windows NT)
Content-Type: application/x-www-form-urlencoded
Content-Length: 51
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
name=qingmeisu&sn=099877883837&desc=qingmeisuyaopin
①请求行: POST /api/medicine HTTP/1.1
表示请求方法是POST
请求资源地址是/mgr/login.html
使用的协议是HTTP/1.1
②请求消息头 Request headers
view source:原始请求头
view parsed:解析后请求头
通常请求头 都有好多个,一个请求头 占据一行.如:
Host: www.baiyueheiyu.com
User-Agent: Mozilla/6.0 (compatible; MSIE5.01; Windows NT)
Content-Type: application/x-www-form-urlencoded
Content-Length: 51
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
③请求消息体 Request payload
view souce: 原始的消息
view parsed: 解析后的消息
如:
name=qingmeisu&sn=099877883837&desc=qingmeisuyaopin
常见消息体格式:
json
xml
www-form-urlencoded
常见HTTP请求方法:
GET:
从服务器获取资源
POST:
提交信息/添加信息 给服务端
PUT:
更新服务端信息
DELETE:
从服务端删除信息
HTTP响应消息由下下面几个部分组成:
HTTP/1.1 200 OK
Date: Thu, 19 Sep 2019 08:08:27 GMT
Server: WSGIServer/0.2 CPython/3.7.3
Content-Type: application/json
Content-Length: 37
X-Frame-Options: SAMEORIGIN
Vary: Cookie
{"ret": 0, "retlist": [], "total": 0}
①状态行: HTTP/1.1 200 OK
HTTP协议:HTTP/1.1
响应状态码: 200
描述状态短语: OK
②响应消息头Response Headers
view source:原始响应消息头
view parsed:解析后响应消息头
Date: Thu, 19 Sep 2019 08:08:27 GMT
Server: WSGIServer/0.2 CPython/3.7.3
Content-Type: application/json
Content-Length: 37
X-Frame-Options: SAMEORIGIN
Vary: Cookie
③响应消息体 Response
Response: 原始响应消息体
Preview: 解析后的响应消息体
{"ret": 0, "retlist": [], "total": 0}
常见HTTP响应状态码:
2xx:
表示请求消息没有问题,而且服务器也正确处理了
3xx:
重定向,301,302 表示客户端请求的url地址已经变了,需要客户端重新发一个请求到另外的一个url
4xx:
表示客户端请求有错误
400: 表示客户端请求不符合接口要求. 如: 请求格式错误
401: 表示客户端需要先认证才能发送请求. 如: 没有登录认证
403: 表示客户端没有权限要求服务器处理这样的请求. 如: 角色没有该权限
404: 表示客户端请求的url不存在
5xx:
服务端错误,服务器内部错误