HTTP1.0

本文深入解析了HTTP1.0协议的基本概念与工作原理,包括请求与回应格式、常用命令如GET、POST、HEAD,以及协议的局限性。强调了HTTP作为应用层协议在客户端与服务器间通信的角色。

Http定义

Http是基于TCP/IP的应用层协议,不涉及数据包传输,主要规定了客户端和服务器之间的通信格式,默认为80端口

简介

Http/1.0

  1. 发送请求内容可以使文字、视频、图像、二进制文件
  2. GET、POST、HEAD命令
  3. 请求格式和回应格式。除了数据部分,必须包含请求头(Http header),用来描述元数据。还包括状态码、多字符集、多部分发送、权限、缓存、内容编码等

请求格式

GET / HTTP/1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5)
Accept: */*

可以看到GET命令后面增加了协议版本(HTTP/1.0),后面多行头信息用来表述客户端情况

回应格式

HTTP/1.0 200 OK 
Content-Type: text/plain
Content-Length: 137582
Expires: Thu, 05 Dec 1997 16:00:00 GMT
Last-Modified: Wed, 5 August 1996 15:55:28 GMT
Server: Apache 0.84

<html>
  <body>Hello World</body>
</html>

回应格式是“头信息 + 一个空行(\r\n) + 数据” 第一行是“协议版本HTTP/1.0+ 状态码200 + 状态描述OK”,其中,Content-Type声明了服务器回应客户端的数据类型,又称MIME type,类型有如下:

- text/plain
- text/html
- text/css
- image/jpeg
- image/png
- image/svg+xml
- audio/mp4
- video/mp4
- application/javascript
- application/pdf
- application/zip
- application/atom+xml

Content-Encoding 字段用来说明服务端回应数据的压缩方法,客户端用Accept-Encoding字段来说明自己可以接受的压缩方法

缺点

HTTP/1.0最大的缺点就是每个TCP连接只能发送一个请求,发送数据完毕后,连接就关闭,如果请求其他资源,必须再新建一个连接,虽然为了解决这个问题,引入了非标准字段Connection,但并没有根本解决。

06-27
HTTP/1.0 是一种早期版本的超文本传输协议,它定义了客户端和服务器之间如何交换数据[^1]。以下是关于 HTTP/1.0 协议的一些关键特性、工作原理以及与 HTTP/1.1 的区别。 ### 特性 - **短连接**:每次请求/响应后都会关闭 TCP 连接,这意味着每个资源都需要建立新的连接。 - **简单性**:设计较为简单,只支持基本的功能如 GET, POST 和 HEAD 方法。 - **缓存控制有限**:使用 `If-Modified-Since` 和 `Expires` 头来管理缓存,但不如后来的版本灵活。 - **内容编码**:虽然包含了 `Content-Encoding` 头部用于端到端的内容编码,但是缺乏对分块传输的支持。 ### 工作原理 当浏览器向服务器发起 HTTP/1.0 请求时,通常遵循以下步骤: 1. 客户端通过 DNS 解析获取服务器 IP 地址。 2. 建立 TCP 握手连接。 3. 发送 HTTP 请求报文给服务器。 4. 服务器处理请求并返回相应的 HTTP 响应报文。 5. 关闭 TCP 连接(除非特别指定保持连接)。 整个过程涉及到的时间成本包括文档的传输时间和两倍的往返时间 RTT(Round-Trip Time),其中一次 RTT 用于建立 TCP 连接,另一次则用于实际的数据交换[^2]。 ### 与 HTTP/1.1 的区别 - **持久连接**:HTTP/1.1 默认启用持久连接(Keep-Alive),允许在单个 TCP 连接上发送多个请求/响应对,减少了建立和关闭连接带来的延迟。 - **更多的状态码**:引入了许多新状态码,比如 100 Continue, 206 Partial Content 等,提供了更详细的反馈信息。 - **增强的缓存机制**:除了原有的缓存控制头外,还增加了 ETag, If-Match 等更为复杂的缓存策略选项。 - **范围请求**:支持通过 `Range` 头域实现部分文件下载,这对于大文件或断点续传非常有用。 - **Host 头字段**:必须包含 Host 头字段,这使得同一个 IP 地址可以托管多个域名的服务成为可能,促进了虚拟主机技术的发展[^3]。 这些改进显著提高了网络效率,并为现代 Web 应用程序奠定了基础。 ```http GET /index.html HTTP/1.0 Host: www.example.com ``` 上面是一个典型的 HTTP/1.0 请求示例,展示了如何构造一个简单的 GET 请求以检索特定网页。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ezview_uniview

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值