1.HTTP协议用户客户端和服务端之间的通信
其实TCP/IP协议族里面的好多协议都用于客户端和服务端之间的通信
请求访问文本或者图像等资源的一端称为客户端
提供资源响应的一端称为服务端
在应用HTTP协议的时候,必然一端是服务端,另外一端是客户端
对于一条通信线路,服务端和客户端是确定的
对于多条通信线路,服务端和客户端的角色有可能互换
2.通过请求和响应的交换达成通信
请求必然是由客户端发出,由服务端来响应
HTTP协议规定,先从客户端开始建立通信,服务端没有接收到请求之前是不会发送响应的
- (1)客户端发送请求
请求某台HTTP服务器上面的页面资源,格式如下:
GET(请求访问服务器的类型,也叫方法) /index.html(请求访问的资源对象,请求URI) HTTP/1.1(使用的协议及其版本)
请求报文=请求方法+请求URI+协议版本+可选的请求首部字段+内容实体 - (2)服务端回应
HTTP/1.1(服务端的协议及其版本) 200(请求处理结果的状态码) ok
响应报文=协议版本+状态码(表示请求成功或者失败的数字代码)+用以解释状态码的原因短语+可选的响应首部字段+实体主体
3.HTTP是不保存状态的协议(也叫做无状态协议)
HTTP协议自身不对请求和响应之间的通信状态进行保存
在HTTP这个级别(应用层),协议对于发送过的请求和响应都不做持久化处理
HTTP协议自身不具备保存之前发送过的请求和响应(响应报文的信息)的功能
使用HTTP协议的时候,每当由新的请求发送过来,就会有新的响应产生
这样做是为了更快的处理大量事物,确保协议的可伸缩性
想实现用户登录一家购物网站的时候,即使跳转到该站的其他页面,依然能够保持登录的状态
这时候就需要使用Cookie技术
4.请求URI定位资源
HTTP协议使用URI定位互联网上的资源
因为URI的功能,在互联网上的任意位置的资源都能访问到
HTTP协议使用URI让客户定位到资源
5.告知服务器意图的HTTP方法(客户端给服务端的操作)
- (1)GET:获取资源(想访问服务器什么资源)
GET方法用来请求访问已经被URI识别的资源
指定的资源经过服务器端解析之后返回响应内容 - (2)POST:传输实体主体(告诉服务器一件事)
POST方法用来传输实体的主体
POST方法和GET方法类似,POST的主要目的不是获取响应的主体内容 - (3)PUT:传输文件
PUT方法用来传输文件(和FTP协议的文件上传一样)
要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置
任何人都可以使用PUT上传文件,不安全
要配合web应用程序的验证机制或者架构设计使用REST(表征状态转移)标准才可以 - (4)HEAD:获得报文首部
HEAD和GET一样,只是不返回报文主体内容,用于确认URI的有效性以及资源的更新日期 - (5)DELETE:删除文件(指挥服务端删除)
DELETE方法按请求URI删除指定的资源
和PUT一样,不安全 - (6)OPTIONS:询问支持的方法
OPTIONS方法用来查询针对请求URI指定的资源支持的方法 - (7)TRACE:追踪路径
TRACE方法是让Web服务端将之前的请求通信环回给客户端的方法
TRACE方法就是用来确认连接过程中发生的一系列的操作
牵扯到在代理服务器路由中转的时候可能被篡改
不安全,基本上不用 - (8)CONNECT:要求用隧道协议连接代理
要求在于代理服务器通信时建立隧道,实现用隧道协议实现TCP通信
主要使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经网络隧道传输
CONNECT 代理服务器:端口号 HTTP版本
6.使用方法下达命令
向请求URI指定的资源发送请求报文时,采用称为方法的命令
方法的作用:可以指定请求的资源按期望产生某种行为