1.http协议用于客户端和服务器之间的通信
- 按实际情况,两者角色可能会互换
- 仅从一条通信线路来说,客户端与服务器的角色是确定的,必定有一端是客户端,另一端是服务器端
2.通过请求和响应的交换来进行通信
http规定,先从客户端发出请求,然后服务器端响应请求并回复
请求报文=请求方法+请求URI+协议版本+可选的请求首部字段+内容实体
响应报文=协议版本+状态码+用于解释状态码的原因短语+可选的响应首部字段+实体主体
3.http是不保存状态的协议---无状态协议
HTTP协议自身不具备保存之前发送过的请求或响应的功能
优点:更快的处理大量事务,确保协议的可伸缩性
4.请求URI定位资源
HTTP协议使用URI定位互联网上的资源。
当客户端请求访问资源而发送请求时,URI需要将请求报文中的请求URI包含在内。
- URI为完整的请求URI
GET http://hackr.jp/index.htm HTTP/1.1
- 在首部字段Host中写明网络域名或IP地址
GET /index.htm HTTP/1.1
Host: hackr.jp
注意:如果不是访问特定资源而是对服务器本身发起请求,可以用一个*来代替请求URI
5.告知服务器意图的HTTP方法
HTTP/1.1中可使用的方法
- GET:获取资源
用来请求访问已被URI识别的资源
指定的资源经服务器端解析后返回响应内容
- POST:传输实体主体
- PUT:传输文件
要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置
HTTP/1.1的PUT方法自身不带验证机制
- HEAD:获得报文首部
与GET方法一样,只是不返回报文主体部分
用于确认URI的有效性及资源更新的日期时间等
- DELETE:删除文件
与PUT相反的方法,DELETE方法按请求URI删除指定的资源
不带验证机制
- OPTIONS:询问支持的方法
用来查询针对请求URI指定的资源支持的方法
- TRACE:追踪路径
让Web服务器端将之前的请求通信返回给客户端的方法
- CONNECT:要求用隧道协议连接代理
要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信
6.使用方法下达命令
方法的命令---向请求URI指定的资源发送请求报文
作用:可以指定请求的资源按期望产生某种行为
注意:方法名区分大小写,要用大写字母
7.持久连接节约通信量
HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接
持久连接:
特点:只要任意一端没有明确提出断开连接,就保持TCP连接状态
持久连接旨在建立1次TCP连接后,进行多次请求与响应的交互
好处:减少了TCP连接的重复建立与断开所造成的额外开销,减轻了服务器的负载
8.使用Cookie的状态管理
HTTP---无状态协议
Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态