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 地址只能托管一个网站,限制了虚拟主机的使用。