GET: 获取资源

GET 方法用来请求访问已被 URI 识别的资源。指定的资源经服务器 端解析后返回响应内容。

例如:请求图片资源、html资源

POST: 传输实体主体

POST方法用来传输实体的主体。虽然用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用 POST 方法。虽说POST的功能与GET很相似,但POST的主要目的并不是获取响应的主体内容。

GET参数会带到URL上,POST参数会放到请求体里面。

HEAD: 获得报文首部

这个类型和GET类似,只不过这个类型是请求头部信息。

PUT: 传输文件

DELETE: 删除文件

OPTIONS: 询问支持的方法

一般是作为一个试探的请求,比如跨域请求发起的时候,会先发一个OPTIONS的请求。

TRACE: 追踪路径

CONNECT: 要求用隧道协议连接代理

一些问题

  1. GET 和 POST 有什么区别?

传输方式不同,GET请求是在URL上,POST是通过请求体。

安全性不同,GET直接把参数暴露在URL上,所以安全性较差。

GET是只读的(幂等)

  1. PUT 和 POST 有什么区别

也是幂等性的差别

  1. HTTP 请求报文是什么样子的

    • 请求行:包括请求类型 URL 协议版本

    • 请求头:由键值对组成,包括 User-Agent、Accept、Host等等

    • 请求体:请求携带的数据

  2. HTTP 响应的报文是什么样的

    • 响应行:包括协议版本、状态码、状态短语

    • 响应头:响应首部

    • 响应体:服务器返回的数据

  3. 首部字段有哪些,有什么作用

    通用首部字段 请求首部字段 响应首部字段 实体首部字段

    • cache-control 控制缓存

    • connection 连接管理 keep-alive

    • transfer-encoding 报文的编码格式

    使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。

6、HTTPS是如何保证安全的?

https是安全版的http,因为http协议的数据都是明文进行传输的,所以对于一些敏感信息的传输就很不安全。

对称加密:加密密钥和解密密钥一样,不够安全。

非对称加密:公钥加密,私钥解密,性能不好。

结合这两种方式,使用对称加密,但是对称加密的密钥使用非对称加密进行处理。

我们需要一个可靠的中间人,也就是安全的第三方颁发证书(CA),确保密钥不会被替换。

为了保证证书的安全,我们使用单项散列函数,例如sha512去保证数据的完整性,也就是数字签名。

  1. HTTP2相对于HTTP1.x有什么优势和特点?

    • 多路复用,把把 HTTP 协议通信的基本单位缩小为一个一个的帧,使得在请求统一域名下的多个文件更加高效。共享一个连接。

    • 首部压缩(Header Compression)

    • 服务端推送