GET: 获取资源
GET 方法用来请求访问已被 URI 识别的资源。指定的资源经服务器 端解析后返回响应内容。
例如:请求图片资源、html资源
POST: 传输实体主体
POST方法用来传输实体的主体。虽然用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用 POST 方法。虽说POST的功能与GET很相似,但POST的主要目的并不是获取响应的主体内容。
GET参数会带到URL上,POST参数会放到请求体里面。
HEAD: 获得报文首部
这个类型和GET类似,只不过这个类型是请求头部信息。
PUT: 传输文件
DELETE: 删除文件
OPTIONS: 询问支持的方法
一般是作为一个试探的请求,比如跨域请求发起的时候,会先发一个OPTIONS的请求。
TRACE: 追踪路径
CONNECT: 要求用隧道协议连接代理
一些问题
- GET 和 POST 有什么区别?
传输方式不同,GET请求是在URL上,POST是通过请求体。
安全性不同,GET直接把参数暴露在URL上,所以安全性较差。
GET是只读的(幂等)
- PUT 和 POST 有什么区别
也是幂等性的差别
HTTP 请求报文是什么样子的
请求行:包括请求类型 URL 协议版本
请求头:由键值对组成,包括 User-Agent、Accept、Host等等
请求体:请求携带的数据
HTTP 响应的报文是什么样的
响应行:包括协议版本、状态码、状态短语
响应头:响应首部
响应体:服务器返回的数据
首部字段有哪些,有什么作用
通用首部字段 请求首部字段 响应首部字段 实体首部字段
cache-control 控制缓存
connection 连接管理 keep-alive
transfer-encoding 报文的编码格式
使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。
6、HTTPS是如何保证安全的?
https是安全版的http,因为http协议的数据都是明文进行传输的,所以对于一些敏感信息的传输就很不安全。
对称加密:加密密钥和解密密钥一样,不够安全。
非对称加密:公钥加密,私钥解密,性能不好。
结合这两种方式,使用对称加密,但是对称加密的密钥使用非对称加密进行处理。
我们需要一个可靠的中间人,也就是安全的第三方颁发证书(CA),确保密钥不会被替换。
为了保证证书的安全,我们使用单项散列函数,例如sha512去保证数据的完整性,也就是数字签名。
HTTP2相对于HTTP1.x有什么优势和特点?
多路复用,把把 HTTP 协议通信的基本单位缩小为一个一个的帧,使得在请求统一域名下的多个文件更加高效。共享一个连接。
首部压缩(Header Compression)
服务端推送