HTTP网络协议
HTTP — 超文本传输协议(HTTP)是用于分布式协作超媒体信息系统的应用程序协议。 HTTP是万维网数据通信的基础。
HTTP通信的三大支柱:URLs / 动词 / 状态代码
- URLs
web通信的核心是请求信息,它是通过URL(Uniform Resource Locators)发送的。该协议通常是http,但也有https的加密通信。默认端口为80,也可以明确的设置它(在网址中显式设置),资源的路径为服务器上的本地路径。
- 动词
上面的URLs揭示了我们想要进行通信的确切主机的身份,但是应通过HTTP动词来明确具体执行的是哪项操作。有一些动作是客户端想要主机去执行的,HTTP已经正式化了一些适用于所有应用程序的动词。
GET:fetch an existing resource.
POST:create a new resource.
PUT:update an existing resource.
DELETE: delete an existing resource.
以上四个动词是最受欢迎的,并且大多数工具和框架都明确地暴露了这些请求动词。
然后还有一些用的比较少的,不过HTTP也支持的:
HEAD:和GET类似,但是没有消息body。它被用来为一个指定的资源获得服务器headers,通常用于通过时间戳来检查该资源是否改变。
TRACE:用来获得一个带着从服务器往返的请求的这么一个hops.每一个直接的代理或者通道(网关)都会向via的header field注入它自己IP或者DNS的名字。这个动词能被用于诊断的目的。
OPTIONS:用来获得服务器的能力。在客户端一头,它能被用来通过基于服务器是否支持来选择,继而修改请求。
- 状态代码
带着URLs和动词,客户端就能向服务器开始请求。服务器会返回给客户端状态代码和消息的有效负荷。状态代码很重要,它能告诉客户端如何解释服务器的这一响应。HTTP规范(spec是specification的缩写)为响应的具体类型定义了一些数字字段:
1xx: Informational Messages
2xx: Successful
3xx: Redirection
4xx: Client Error
5xx: Server Error
(具体的说明:
1xx 是临时的,告诉客户端继续发送剩下的其他请求,或者忽略它已经发送的,HTTP/1.0 客户端应该忽略它。
202 已接受
204 没有内容
205 重置内容
206 部分内容
301 永久移动
303 见其他
304 没有修改
404 错误的请求
401 未认证
403 拒绝访问
405 不允许的方法(不支持该动词)
409 冲突(多发生于多人协作)
501 未实施
503 服务不可用)
浙公网安备 33010602011771号