一、HTTP协议简介
HTTP 有好几个版本,包括: 0.9、1.0、1.1、2,当前最广泛使用的是 HTTP/1.1 版本。
HTTP 协议最大的特点是 通讯双方 分为 客户端 和 服务端 。
由于 目前 HTTP是基于 TCP 协议的, 所以要进行通讯,客户端 必须先 和服务端 创建 TCP 连接。
而且 HTTP 双方的信息交互,必须是这样一种方式:
客户端 先发送 http请求(request)给 服务端
然后服务端 发送 http响应(response)给 客户端
-=================================================-
二、http请求消息示例
GET
从服务器 获取 资源信息,这是一种最常见的请求。
POST
添加、新增 资源信息 到 服务器进行处理(例如提交表单或者上传文件)
PUT
请求服务器 更新 资源信息 。
DELETE
请求服务器 删除 资源信息 。
Host
域名、服务端地址
User-Agent
客户端类型
Accept-Language
客户端使用的语言
-=================================================-
三、消息体(请求体)
Request Payload
web网页存放消息体的位置
WEB API 请求消息体 通常是某种格式的文本,常见的有
Json
Xml
www-form-urlencoded
-=================================================-
四、http响应消息
状态行在第一行,包含3个部分:
协议版本
上面的示例中,就是 HTTP/1.1
状态码
上面的示例中,就是 200
描述状态的短语
上面的示例中,就是 OK
常见的状态码:
• 2xx
通常 表示请求消息 没有问题,而且 服务器 也正确处理了
最常见的就是 200
• 3xx
这是重定向响应,常见的值是 301,302, 表示客户端的这个请求的url地址已经改变了, 需要 客户端 重新发起一个 请求 到另外的一个url。
• 4xx
表示客户端请求有错误, 常见的值有:
400 Bad Request 表示客户端请求不符合接口要求,比如格式完全错误
401 Unauthorized 表示客户端需要先认证才能发送次请求
403 Forbidden 表示客户端没有权限要求服务器处理这样的请求, 比如普通用户请求删除别人账号等
404 Not Found 表示客户端请求的url 不存在
• 5xx (通常为500)
表示服务端在处理请求中,发生了未知的错误。
通常是服务端的代码设计问题,或者是服务端子系统出了故障(比如数据库服务宕机了)