HTTP协议有以下主要特点:
- 无状态:HTTP协议是无状态的,意味着服务器不会保留客户端状态信息。需要使用Cookie或Session来维持状态。
- 短连接:HTTP1.0使用短连接,意味着每次请求响应完成后连接就会关闭。HTTP1.1引入长连接保持连接状态。
- 支持B/S与C/S架构:HTTP同时支持浏览器/服务器和客户端/服务器架构。
- 统一接口:HTTP为客户端与服务端通信提供了统一的接口,使得多种平台的系统能够进行数据通信。
- 灵活:HTTP允许传输任意类型的数据,文本、图像、视频等。并使用MIME类型进行格式标识。
- 简单快速:HTTP协议简单、快速,请求响应过程中只传输必要信息,没有复杂的手续。
代码示例:
无状态:
php
// 第1次请求
$name = $_GET['name'];
echo $name; // John
// 第2次请求
echo $name; // Undefined
短连接:
// HTTP1.0
GET /test HTTP/1.0
HTTP/1.0 200 OK
// 连接关闭
// HTTP1.1
GET /test HTTP/1.1
HTTP/1.1 200 OK
Connection: Keep-Alive
B/S与C/S架构:
// 浏览器请求
GET /page.html HTTP/1.1
// 客户端请求
POST /api/user HTTP/1.1
统一接口:
GET /test.txt HTTP/1.1
Host: www.example.com
HTTP/1.1 200 OK
Content-Type: text/plain
Hello World
传输任意数据:
POST /upload HTTP/1.1
Content-Type: image/png
<png image data>
简单快速:
GET /test HTTP/1.1
HTTP/1.1 200 OK
Content-Length: 11
Hello World