这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战
一、HTTP有哪些方法?
1、HTTP1.0定义了三种请求方式:GET,POST,HEAD
2、HTTP2.0新增了五种请求方式:options,put,delete,trace和connect
二、这些方法的具体作用
GET:通常用于请求服务器发送某些资源
POST:发送数据给服务器,相比GET更安全
HEAD:请求资源头部传送的信息,可以传递TOKEN或者判断文件大小确定是否下载
OPTIONS:获取目的资源所支持的通信选项
PUT:用于新增功能的请求,可以有效负载替换目标资源的表现形式
DELETE:用于删除功能的请求
Connect:HTTP1.1协议中预留给能将请求改为管道方式的代理服务器
Trace:回显服务器收到的请求,用于测试或诊断
三、GET和POST请求的区别
1)GET通过URL传输数据,POST通过请求体传输
2)GET请求在URL中可以通过历史记录,缓存很容易查到数据信息;POST请求在主体中所有相比GET来说更安全一些。
3)GET请求只允许ASCII字符,POST无限制
4)刷新和后退等浏览器操作对GET请求是无害的,POST可能会重复提交表单
5)GET具有只读性,不会引起服务器状态的变化,并且是幂等(指请求同一个方法和只执行一次的效果完全相同);而POST是非安全幂等的
四、PUT和POST都是发送新增请求,他们的区别是什么?
1)PUT是幂等的,POST非幂等
2)PUT的请求路径URL是单一的资源,POST可以指向资源集合
五、HTTP的请求组成
1、请求行:请求方法字段、URL字段、HTTP协议版本字段,这些使用空格分隔
2、请求头部:由关键字/值对组成,每行一对,
例如:User-Agent:产生请求的浏览器类型
Accept:客户端可识别的内容类型列表
Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机
3、空行
4、请求体:PUT或POST请求体的数据
六、HTTP响应报文组成
1、响应行:由协议版本,状态码和状态码的原因组成,例如:HTTP/1.1 200 OK
2、响应头:响应部首组成
3、空行
4、响应体:服务器响应的数据
七、HTTP的Keep-alive的作用
在HTTP1.0的时候每次请求都会创建一个连接,而创建连接会很耗费资源和时间,为了减少资源消耗,就需要用复用连接。所以在后期引用了重用连接的机制,就是在HTTP请求头中加入Connect: keep-alive来告诉服务器请求响应后不要关闭连接,从而保持长连接。
优点:
1、不占用CPU内存(因为创建连接次数少)
2、允许请求和响应的HTTP管线化
3、减少后续请求的延迟(无需再进行握手)
4、请求错误不会关闭TCP连接
5、降低拥塞控制
八、HTTP和HTTPS
简介:HTTPS是安全版本的HTTP,因为HTTP协议是明文传输,所以如果由敏感信息传出就不安全,HTTPS则不会。
HTTPS原理:
先说两种加密方式:
1、对称加密:通信双方都使用同一个密钥进行加解密,但是无法把首次的密钥告诉对方,就会被黑客拦截密钥
2、非对称加密:私钥+公钥=密钥对;使用私钥加密的数据,只有对应的公钥才能解密,用公钥加密的时候,只有对应的私钥才能解密;因为通信双方的手里都有一套自己的密钥对,所以可以放心的把公钥对发给对方,然后到各自解密的时候拿着自己的私钥解密即可。
看了以上两种加密方式,应该都能看出来非对称加密比较安全,但是非对称加密熟读更慢,耗费性能。所以又进行的优化,可以加入一个中间人进行管理,把每次通过中间人把双方通信的公钥换成自己的私钥,这样就可以轻松解密通信双方的所有数据,所以就产生一个CA证书,用来证明身份,防止黑客攻击;但是也为了防止中间人篡改信息,又新增了数字签名,就是用自带Hash算法对证书内容进行Hash得到摘要,再用私钥解密得到数字签名。
证书内容:签发者、证书用途、使用者私钥、使用者公钥、使用者的Hash算法、证书到期时间、数字签名等,通常阿里云和腾讯云买域名的时候可以买。
HTTP的知识真的好多,又可以分好几天写啦,算了一下,每天都要写两个小时以上的文章,白天工作,晚上写文章,加油。