Http定义
Http是基于TCP/IP的应用层协议,不涉及数据包传输,主要规定了客户端和服务器之间的通信格式,默认为80端口
简介
Http/1.0
- 发送请求内容可以使文字、视频、图像、二进制文件
- GET、POST、HEAD命令
- 请求格式和回应格式。除了数据部分,必须包含请求头(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,但并没有根本解决。