第2章 HTTP协议基础

1. 请求/响应 报文组成

请求报文 由 请求方法(Methods)、请求URI(request-URI)、协议版本可选的请求首部字段(Headers) 和 内容实体 组成

响应报文 由 协议版本状态码(status code)、原因短语(reason-phrase)、可选的首部字段(Header field) 和 资源实体的主体(entity body) 组成

2. HTTP是无状态的协议(Stateless)

HTTP协议自身并不对请求和响应之间的通信状态进行保存,也就是说HTTP协议对于发送过的请求或者响应不做持久化处理。

meaning每当有新的请求发送时,就有新的响应生成。可通过Cookie实现状态管理

3. 指定request-URI的方式

1. URI作为完成的reuqest-URI

GET http://hacker.jp/index.html HTTP/1.1

2. 在首部字段Host中写明网络域名或者IP地址

GET /index.html HTTP/1.1
Host: hackr.jp

4. HTTP方法Methods

HTTP方法
GET请求URI资源 该资源经服务器端解析后返回响应内容 文本?原样返回:返回接口程序执行后输出结果
POST传输实体的主体 POST功能与GET相似 但其目的并非获取响应主体内容
PUT像FTP协议一样上传文件 在请求报文主体包含文件内容 保存至请求URI指定的位置 不安全
DELETE用来删除文件 与PUT方法相反 不带验证机制 不安全
HEAD与GET方法一样 但不返回报文主体部分 用于确认URI有效性及资源更新日期时间等
OPTIONS查询指定request-URI支持的方法
TRACE追踪路径 不常用 易引发XSF攻击(Cross-Site Tracing)
CONNECT要求用隧道协议连接代理 主要使用SSL(Secure Socket Layer)和TLS(Transport Layer Secure)

绿色背景的方法是HTTP/1.1特有支持的方法 其余上方5个是HTTP/1.0与HTTP/1.1共有的。

5. 持久连接

在HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接

这样的话 在请求包含很多其他资源的HTML页面时 会造成很多无谓的TCP连接的建立和断开 增加通信量的开销

持久化连接(HTTP Persistent Connections/HTTP keep-alive/HTTP connection reuse)

其特点是:只要任意一端没有明确提出分手,就继续在一起(WTF 断开,就保持TCP连接状态)

HTTP/1.1中,所有连接默认都是持久连接

6. Pipelining管线化

持久连接使得多数请求以管线化方式发送成为可能

就是说:多个请求能并行发送 而不需要一个接一个地等待响应了

7. 使用Cookie实现状态管理

Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态

Cookie获取过程:

客户端初次发送请求---服务器生成Cookie---在响应中通过set-Cookie首部字段添加Cookie---客户端保存Cookie

客户端后续发送请求---带上Cookie信息---服务器检查Cookie---识别用户---返回响应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值