共计 1289 个字符,预计需要花费 4 分钟才能阅读完成。
HTTP 协议
HTTP 协议和 TCP/IP 协议族内的其他众多协议相同,用于客户端和服务器之间的通信。请求访问资源的一端为客户端,响应资源的一端为服务器。请求必须从客户端发出,而服务器回复响应,因此建立通信是从客户端开始的。
请求报文
POST /index.htm HTTP/1.1Host: hackr.jpConnection: keep-aliveContent-Type: application/x-www-form-urlencodedContent-Length: 16 name=ueno&age=25
报文说明
方法
POST
URI
/index.htm
协议版本
HTTP/1.1
请求首部字段
Host: hackr.jpConnection: keep-aliveContent-Type: application/x-www-form-urlencodedContent-Length: 16
内容实体
name=ueno&age=25
响应报文
HTTP/1.1 200 OKDate: Tue, 10 Jul 2012 06:50:15 GMTContent-Length: 363Content-Type: text/html <html>…
报文说明
协议版本
HTTP/1.1 200 OK
状态码
200
状态码的原因短语
OK
响应首部字段
Date: Tue, 10 Jul 2012 06:50:15 GMTContent-Length: 363Content-Type: text/html
主体
<html>…
HTTP 是不保存状态的协议
为了更快的处理大量的事物,确保协议的伸缩性,因此把 HTTP 协议设为无状态协议;为此,引入 Cookie 技术保存用户的登陆状态。
HTTP 请求方法
GET:获取资源
GET 方法用来请求访问已被 URI 识别的资源。
POST:传输实体主体
虽然 GET 方法和 POST 方法都可以用来传输实体,但一般不用 GET 方法。
GET 与 POST 的区别
方法
GET
POST
本质
索取数据
提交数据
安全性
低
高
执行效率
高
低
机制
将参数拼接在 url 上,明文传输
将表单内各个字段与其内容放置在 HTML HEADER 内一起传送到 action 属性所指的 URL 地址
大小
取决于浏览器和系统
理论上没有限制,取决于浏览器和系统
地址栏输入
支持
不支持
浏览器历史记录
保留参数
参数不保留
编码方式
url 编码
多种编码方式
PUT:传输文件
PUT 方法用来传输文件,类似 FTP 协议文件上传,请求的报文中包含文件内容,然后保存在 URI 指定位置。但是 HTTP/1.1 的 PUT 方法不带验证机制,任何人都能上传文件,存在安全性问题,慎用。
HEAD:获取报文首部
类似 GET 方法,区别在于只返回报文首部,不返回报文主体。
DELETE:删除文件
与 PUT 方法相反,用来删除文件,DELETE 方法按请求 URI 删除指定资源。但是 HTTP/1.1 的 DELETE 方法同样不带验证机制,存在安全性问题,慎用。区别
OPTIONS:询问支持方法
返回服务器支持的方法
TRACE:追踪路径
CONNECT:要求用隧道协议连接代理
持久连接
旨在建立 1 次 TCP 连接后进行多次请求和响应的交互,在 HTTP/1.1 中默认都是持久连接