最近需要用到和了解的一些基础概念。
HTTP是什么?
超文本协议传输(HyperText Transfer Protocol).
双向协议,在计算机世界里专门用来在两点之间传输数据的约定和规范。
HTTP常见的状态码有哪些?
1xx类表示提示信息,是协议处理的中间状态,使用较少。
2xx类状态码表示服务器成功处理了客户端的请求。
3xx类状态码表示客户端请求的资源发生了变动,需要客户端使用心得URL重新发送请求进行资源获取,重定向。
4xx类状态码表示客户端发送的报文有误,无法处理。
5xx类状态码表示客户端请求报文正确,但服务器处理过程内部发生错误。
-
「200 OK」是最常见的成功状态码,表示一切正常。如果是非
HEAD
请求,服务器返回的响应头都会有 body 数据。 -
「204 No Content」也是常见的成功状态码,与 200 OK 基本相同,但响应头没有 body 数据。
-
「206 Partial Content」是应用于 HTTP 分块下载或断点续传,表示响应返回的 body 数据并不是资源的全部,而是其中的一部分,也是服务器处理成功的状态。
GET与POST的区别?
get从服务器获取指定的资源,post的语义是根据请求负荷(报文body)对指定资源进行处理。
GET和POST方法都是安全和幂等的吗?
http协议中,所谓的安全是指请求方法不会破坏服务器上的资源。所谓的幂等,是指多次执行相同的操作,结果都是相同的。get是安全且幂等的(只读),post不安全也不幂等,提交过程会修改服务器上的资源。
因此,浏览器可以将get做到代理上(如nginx),post一般不会被缓存,也不能将post请求保存为书签。
引入HTTPS协议:HTTP传输内容是明文的,只要抓包就可以获得内容,get用url传输,post用body传输,要避免传输过程中数据被窃取,引入https。