1 HTTP基本概念
-
HTTP是Hyper Text Transfer Protocol( 超文本传输协议)的缩写。
-
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
-
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
-
HTTP协议是一种应用层的传输协议,用于客户端和服务器之间的通信。
2 HTTP常用方法
| 方法 | 作用 | 说明 | 支持版本 |
|---|---|---|---|
| GET | 获取资源 | GET方法用来请求URL指定的资源。指定的资源经服务器端解析后返回响应内容 | 1.0/1.1 |
| POST | 传输实体主体 | POST方法用来传输实体的主体 | 1.0/1.1 |
| PUT | 传输文件 | 就像FTP协议的文件上传一样,要求在请求报文主体中包含文件的内容,然后保存到请求URL指定的位置。不太常用。 | 1.0/1.1 |
| HEAD | 获得报文首部 | HEAD方法和GET方法一样,只是不返回报文主体部分。用于确认URL的有效性及资源更新的日期时间等。 | 1.0/1.1 |
| DELETE | 删除文件 | DELETE方法用来删除文件,是PUT的相反方法。DELETE方法按请求URL删除指定的资源。也不常用 | 1.0/1.1 |
| OPTIONS | 询问支持的方法 | OPTIONS方法用来查询针对请求URL指定的资源支持的方法 | 1.1 |
| TRACE | 追踪路径 | TRACE方法是让Web服务器端将之前的请求通信环回给客户端方法。客户端可以用TRACE方法查询发送出去的请求时怎样被加工修改的。不常用,还容易引发XST攻击 | 1.1 |
| CONNECT | 要求用隧道协议链接代理 | CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL和TSL协议把通信内容加密后经网络隧道传输 | 1.1 |
2.1 OPTIONS方法详解
OPTIONS请求即预检请求,可用于检测服务器允许的http方法。当发起跨域请求时,如果是非简单请求,由于安全原因,触发一定条件时浏览器会在正式请求之前自动先发起OPTIONS请求,即CORS预检请求,服务器若接受该跨域请求,浏览器才继续发起正式请求。
满足以下条件属于简单请求
- 请求方式只能是GET、POST、HEAD
- HTTP请求头限制这几种字段(Accept、Accept-Language、Content-Type、DPR、Downlink、Save-Data、Viewport-Width、Width)
- Content-Type:只能取application/x-www-form-urlencoded、multipart/form-data、text/plain
- 请求中的任意XMLHttpRequestUpload对象均没有注册任何事件监听器;XMLHttpRequestUpload对象可以使用
- 请求中没有使用ReadableStream对象