HTTP(超文本传输协议)是运行在应用层的网络协议,用于浏览器和网站服务器之间的通信。
它具有以下主要特点:
- 基于客户端/服务端模式的请求/响应协议。
- 简单快速:客户端向服务器发送请求,服务器返回响应。一个请求对应一个响应,然后通信结束。
- 无状态:每次连接只处理一个请求响应,不保留上下文信息。
- 支持多种请求方法:GET, POST, PUT, DELETE等。
- 可扩展性好:HTTP首部可以扩展以使用HTTP协议发送更多信息。
- 基于TCP/IP通信协议:HTTP依赖TCP协议进行可靠传输。
一个典型的HTTP请求/响应过程如下:
- 客户端(浏览器)连接到服务器的80端口(HTTP默认端口)。
- 客户端向服务器发送HTTP请求,格式为:请求方法 请求URL 请求协议/版本
例如:GET /index.html HTTP/1.1 - 服务器接收请求并返回HTTP响应,格式为:响应协议/版本 状态码 状态码描述
例如:HTTP/1.1 200 OK - 服务器返回网页内容(HTML)。
- 服务器主动断开TCP连接。(HTTP是无状态的)
- 客户端接收响应并显示网页。
示例:
请求:
GET /index.html HTTP/1.1
Host: www.example.com
响应:
HTTP/1.1 200 OK
Content-Type: text/html
<html>
<head>
<title>Hello</title>
<head>
<body>
<h1>Hello World!</h1>
</body>
</html>