HTTP使用指南 | 青训营笔记

112 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

什么是HTTP?

HTTP 是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议)。它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说,请求通常是由像浏览器这样的接受方发起的。一个完整的 Web 文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。HTTP 被设计于 20 世纪 90 年代初期,是一种可扩展的协议。它是应用层的协议,通过 TCP,或者是 TLS——加密的 TCP 连接来发送,理论上任何可靠的传输协议都可以使用。因为其良好的扩展性,时至今日,它不仅被用来传输超文本文档,还用来传输图片、视频或者向服务器发送如 HTML 表单这样的信息。HTTP 还可以根据网页需求,仅获取部分 Web 文档内容更新网页。

HTTP的基本性质

1.HTTP是简单的
HTTP大体上被设计成简单易读,对新人友好。
2.HTTP是可拓展的
HTTP 标头(header)让协议扩展变得非常容易。只要服务端和客户端就新标头达成语义一致,新功能就可以被轻松加入进来。
3.HTTP是无状态的
HTTP 是无状态的:在同一个连接中,两个执行成功的请求之间是没有关系的。而使用 HTTP 的标头扩展,HTTP Cookie 就可以解决这个问题。把 Cookie 添加到标头中,创建一个会话让每次请求都能共享相同的上下文信息,达成相同的状态。
4.HTTP和连接
一个连接是由传输层来控制的,这从根本上不属于 HTTP 的范围。HTTP 并不需要其底层的传输层协议是面向连接的,只需要它是可靠的,或不丢失消息的(至少返回错误)。在互联网中,有两个最常用的传输层协议:TCP 是可靠的,而 UDP 不是。因此,HTTP 依赖于面向连接的 TCP 进行消息传递,但连接并不是必须的。但是这种协议效率并不高。为了更好的适合 HTTP,研发了一种以 UDP 为基础能提供更可靠更高效的传输协议QUIC。