初始Http| 青训营

105 阅读3分钟

一、http是什么 超文本传输协议(HTTP)是一个用于传输超媒体文档(例如 HTML)的应用层协议。 1)它是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。 2)HTTP 遵循经典的客户端 - 服务端模型,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。 3)HTTP 是无状态协议,这意味着服务器不会在两个请求之间保留任何数据(状态)。 4)尽管通常基于 TCP/IP 层,但它可以在任何可靠的传输层上使用,也就是说,该协议不会像 UDP 那样静默的丢失消息。 5)RUDP——作为 UDP 的可靠化升级版本——是一种合适的替代选择。

二、HTTP头 HTTP 消息头用于描述资源或服务器或客户端的行为。 可以使用 X- 前缀添加自定义专有头。 其他的可以在 IANA registry 中找到,其原始定义在 RFC 4229。 IANA 同时也维护着一份 registry of proposed new HTTP message headers。

三、资源和URI 1)HTTP 请求的内容通称为"资源"。”资源“这一概念非常宽泛,它可以是一份文档,一张图片,或所有其他你能够想到的格式。每个资源都由一个 (URI) 来进行标识。

2)一般情况下,资源的名称和位置由同一个 URL(统一资源定位符,它是 URI 的一种)来标识。也有某些特殊情况,资源的名称和位置由不同的 URI 进行标识:例如,待请求的资源希望客户端从另外一个位置访问它。我们可以使用一个特定的首部字段,Alt-Svc,来指示这种情况。

3)URI 的最常见形式是统一资源定位符 (URL),它也被称为 Web 地址。 URL 由多个必须或可选的组件构成。

四、典型的http会话 在像 HTTP 这样的 Client-Server(客户端 - 服务器)协议中,会话分为三个阶段: 客户端建立一条 TCP 连接(如果传输层不是 TCP,也可以是其他适合的连接)。 客户端发送请求并等待应答。 服务器处理请求并送回应答,回应包括一个状态码和对应的数据。 从 HTTP/1.1 开始,连接在完成第三阶段后不再关闭,客户端可以再次发起新的请求。这意味着第二步和第三步可以连续进行数次。

五、http请求方法 HTTP 请求方式 可以使用 HTTP: GET,POST 方式来完成不同操作,或是一些不太常见的请求方式,像是: OPTIONS,DELETE 和 TRACE。

1)HTTP GET 方法请求指定的资源。使用 GET 的请求应该只用于获取数据。 2)HTTP HEAD 方法 请求资源的头部信息,并且这些头部与 HTTP GET 方法请求时返回的一致。该请求方法的一个使用场景是在下载一个大文件前先获取其大小再决定是否要下载,以此可以节约带宽资源。 3)HTTP 的 OPTIONS 方法 用于获取目的资源所支持的通信选项。客户端可以对特定的 URL 使用 OPTIONS 方法,也可以对整站(通过将 URL 设置为“*”)使用该方法。 4)请求方法 PATCH 用于对资源进行部分修改。 5)HTTP POST 方法 发送数据给服务器。请求主体的类型由 Content-Type 首部指定。 PUT 和POST方法的区别是,PUT 方法是幂等的:连续调用一次或者多次的效果相同(无副作用)。连续调用同一个 POST 可能会带来额外的影响,比如多次提交订单。

六、HTTP 状态码 HTTP 状态码用来表示特定的 HTTP 请求是否已成功完成。 响应分为五类:消息响应,成功响应,重定向,客户端错误和服务器错误。