聊聊HTTP协议 | 8月更文挑战

这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战算法

1、HTTP有哪些方法?

一、HTTP1.0定义了三种请求方式:GET,POST,HEAD浏览器

二、HTTP2.0新增了五种请求方式:options,put,delete,trace和connect缓存

2、这些方法的具体做用

GET:一般用于请求服务器发送某些资源安全

POST:发送数据给服务器,相比GET更安全服务器

HEAD:请求资源头部传送的信息,能够传递TOKEN或者判断文件大小肯定是否下载markdown

OPTIONS:获取目的资源所支持的通讯选项post

PUT:用于新增功能的请求,能够有效负载替换目标资源的表现形式性能

DELETE:用于删除功能的请求测试

Connect:HTTP1.1协议中预留给能将请求改成管道方式的代理服务器优化

Trace:回显服务器收到的请求,用于测试或诊断

3、GET和POST请求的区别

1)GET经过URL传输数据,POST经过请求体传输

2)GET请求在URL中能够经过历史记录,缓存很容易查到数据信息;POST请求在主体中全部相比GET来讲更安全一些。

3)GET请求只容许ASCII字符,POST无限制

4)刷新和后退等浏览器操做对GET请求是无害的,POST可能会重复提交表单

5)GET具备只读性,不会引发服务器状态的变化,而且是幂等(指请求同一个方法和只执行一次的效果彻底相同);而POST是非安全幂等的

4、PUT和POST都是发送新增请求,他们的区别是什么?

1)PUT是幂等的,POST非幂等

2)PUT的请求路径URL是单一的资源,POST能够指向资源集合

5、HTTP的请求组成

一、请求行:请求方法字段、URL字段、HTTP协议版本字段,这些使用空格分隔

二、请求头部:由关键字/值对组成,每行一对,

          例如:User-Agent:产生请求的浏览器类型

          Accept:客户端可识别的内容类型列表

          Host:请求的主机名,容许多个域名同处一个IP地址,即虚拟主机

三、空行

四、请求体:PUT或POST请求体的数据

6、HTTP响应报文组成

一、响应行:由协议版本,状态码和状态码的缘由组成,例如:HTTP/1.1 200 OK

二、响应头:响应部首组成

三、空行

四、响应体:服务器响应的数据

7、HTTP的Keep-alive的做用

在HTTP1.0的时候每次请求都会建立一个链接,而建立链接会很耗费资源和时间,为了减小资源消耗,就须要用复用链接。因此在后期引用了重用链接的机制,就是在HTTP请求头中加入Connect: keep-alive来告诉服务器请求响应后不要关闭链接,从而保持长链接。

优势:

一、不占用CPU内存(由于建立链接次数少)

二、容许请求和响应的HTTP管线化

三、减小后续请求的延迟(无需再进行握手)

四、请求错误不会关闭TCP链接

五、下降拥塞控制

8、HTTP和HTTPS

简介:HTTPS是安全版本的HTTP,由于HTTP协议是明文传输,因此若是由敏感信息传出就不安全,HTTPS则不会。

HTTPS原理:

先说两种加密方式:

一、对称加密:通讯双方都使用同一个密钥进行加解密,可是没法把首次的密钥告诉对方,就会被黑客拦截密钥

二、非对称加密:私钥+公钥=密钥对;使用私钥加密的数据,只有对应的公钥才能解密,用公钥加密的时候,只有对应的私钥才能解密;由于通讯双方的手里都有一套本身的密钥对,因此能够放心的把公钥对发给对方,而后到各自解密的时候拿着本身的私钥解密便可。

看了以上两种加密方式,应该都能看出来非对称加密比较安全,可是非对称加密熟读更慢,耗费性能。因此又进行的优化,能够加入一个中间人进行管理,把每次经过中间人把双方通讯的公钥换成本身的私钥,这样就能够轻松解密通讯双方的全部数据,因此就产生一个CA证书,用来证实身份,防止黑客攻击;可是也为了防止中间人篡改信息,又新增了数字签名,就是用自带Hash算法对证书内容进行Hash获得摘要,再用私钥解密获得数字签名。

证书内容:签发者、证书用途、使用者私钥、使用者公钥、使用者的Hash算法、证书到期时间、数字签名等,一般阿里云和腾讯云买域名的时候能够买。

HTTP的知识真的好多,又能够分好几天写啦,算了一下,天天都要写两个小时以上的文章,白天工做,晚上写文章,加油。

相关文章
相关标签/搜索