东行天下

导航

 

1.名称

HTTP 协议 --> 超文本传输协议, 英文 --> Hypertext Transfer Protocol

2.版本

HTTP 0.9、1.0、1.1、2,当前最广泛使用的是 HTTP/1.1 版本。

3.特点

HTTP 协议最大的特点 --> 通讯双方 分为 客户端 和 服务端 。

4.交互方式

客户端 --> 发送 http请求(request)--> 服务端
<-- 发送 http响应(response)<--

特别注意:HTTP协议中,服务端不能主动先发送信息给 客户端。

在1.1 以前的版本, 服务端 返回响应给客户端后,连接就会 断开 ,
下一次双方要进行信息交流,必须重复上面的过程,重新建立连接,客户端发送请求,服务返回响应。

到了 1.1 版本, 建立连接后,这个连接可以保持一段时间(keep alive), 这段时间,双方可以多次进行 请求和响应,
无需重新建立连接。


5.常见的HTTP 请求方法包括:(客户端角度,对端是服务器)

5.1 GET(获取信息) 查

从服务器 获取 资源信息,这是一种最常见的请求。
比如 要 从服务器 获取 网页资源、获取图片资源、获取用户信息数据等等。

5.2 POST(添加信息,提交信息) 增

添加 资源信息 到 服务器进行处理(例如提交表单或者上传文件)。
比如 要 添加用户信息、上传图片数据 到服务器 等等

5.3 PUT (修改信息) 改

比如 要 更新 用户姓名、地址 等等

5.4 DELETE (删除信息) 删

比如 要 删除 某个用户、某个药品 等等

6.报文格式

####请求消息####

GET /mgr/login.html HTTP/1.1
Host: www.baiyueheiyu.com
User-Agent: Mozilla/6.0 (compatible; MSIE5.01; Windows NT)
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
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

请求行(请求方法 请求资源的地址,不包括IP,IP由传输层指定 协议版本号)
请求头(名字: 值) 每个消息头占一行
Host: www.baidu.com (服务器可能搭建了多个host,所以需要指定HOST参数)

消息体,又叫请求体,不是每个消息都有请求体,和请求头之间有一行空行(3种文本格式:json xml www-form-urlencoded)
用于存放数据信息,get消息不用,post和put消息需要
####请求消息####

 

####响应消息####

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}

响应行(协议版本 状态码 描述状态的短语),也叫状态行
响应头(和请求头一样)

消息体(3种文本格式:json xml www-form-urlencoded)
####响应消息####

状态码
状态码用3位的数字来表示,第一位 的 数字代表 处理结果的 大体类型,常见的有如下几种:

2xx 通常 表示请求消息 没有问题,而且 服务器 也正确处理了。最常见的就是 200
3xx 这是重定向响应,常见的值是 301,302, 表示客户端的这个请求的url地址已经改变了, 需要 客户端 重新发起一个 请求 到另外的一个url。
4xx 表示客户端请求有错误, 常见的值有:
400 Bad Request 表示客户端请求不符合接口要求,比如格式完全错误
401 Unauthorized 表示客户端需要先认证才能发送次请求
403 Forbidden 表示客户端没有权限要求服务器处理这样的请求, 比如普通用户请求删除别人账号等
404 Not Found 表示客户端请求的url 不存在
5xx 表示服务端在处理请求中,发生了未知的错误。通常是服务端的代码设计问题,或者是服务端子系统出了故障(比如数据库服务宕机了)
------------------------------------------
url参数
比如:
https://www.baidu.com/s?wd=iphone&rsv_spt=1
问号后面的部分 wd=iphone&rsv_spt=1 就是 url 参数,

每个参数之间是用 & 隔开的。

上面的例子中 有两个参数 wd 和 rsv_spt, 他们的值分别为 iphone 和 1 。

url参数的格式,有个术语叫 urlencoded 格式。
-------------------------------------------


<br> 代表换行符

posted on 2022-10-24 20:15  东行天下  阅读(52)  评论(0)    收藏  举报