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 是临时的,告诉客户端继续发送剩下的其他请求,或者忽略它已经发送的,HTTP/1.0 客户端应该忽略它。

202 已接受

204 没有内容

205 重置内容

206 部分内容

301 永久移动

303 见其他

304 没有修改

404 错误的请求

401 未认证

403 拒绝访问

405 不允许的方法(不支持该动词)

409 冲突(多发生于多人协作)

501 未实施

503 服务不可用)

 

 

posted @ 2020-12-02 17:24  Nelson-Yen  阅读(143)  评论(0)    收藏  举报