1 Star 0 Fork 0

huyi / TechCPP

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
请你介绍一下http1.0.md 1.73 KB
一键复制 编辑 原始数据 按行查看 历史
葛昆仑 提交于 2024-02-16 22:03 . update:14 articles

简单请求-响应模型

HTTP/1.0 遵循一种简单的请求-响应模型。客户端(如 Web 浏览器)向服务器发送一个 HTTP 请求,然后服务器返回一个响应。请求和响应都包含起始行、头部字段和可选的消息主体。

无状态协议

与所有 HTTP 版本一样,HTTP/1.0 是一种无状态协议。这意味着每个请求都是独立的,服务器不会保留之前请求的任何状态信息。虽然这简化了服务器的设计,但也限制了某些应用场景,比如用户身份验证和会话管理。

连接的非持久性

在 HTTP/1.0 中,默认情况下每个请求/响应对都需要一个新的 TCP 连接。这意味着客户端和服务器之间的每次交互都要经历建立连接的开销,包括三次握手延迟和增加的资源消耗。这种非持久连接导致了所谓的 "C10k 问题"(同时处理成千上万的连接)以及性能问题,尤其是在加载资源多的网页时。

方法、状态码和头部

HTTP/1.0 引入了多种请求方法,例如 GET、POST 和 HEAD,使得客户端可以执行不同类型的操作,比如获取资源、提交表单数据等。它还定义了一系列状态码,让服务器能够告知客户端请求是否成功,或者如果失败了是因为什么原因。此外,通过请求和响应头部,客户端和服务器可以交换附加信息,比如内容类型、缓存策略等。

缺点

由于非持久连接和无状态的特性,HTTP/1.0 效率相对较低。每个资源的请求都需要单独的 TCP 连接,增加了传输延迟。此外,HTTP/1.0 不支持像 Host 头这样的现代 HTTP 功能,这意味着每个 IP 地址只能托管一个网站,限制了虚拟主机的使用。

1
https://gitee.com/hylhm/TechCPP.git
git@gitee.com:hylhm/TechCPP.git
hylhm
TechCPP
TechCPP
master

搜索帮助