持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情
说一下请求方式,我们项目中一般用到的就是get和post请求这两种,这两种请求有什么不同呢。
首先get请求和post请求的时候地址是不一样的,get请求在配置参数后发出请求时,参数会附加在地址后边用?连接,这样暴露给外界,发送的请求也会被浏览器缓存记录下来,我们刷新页面时数据也不会清空,是不安全的,不要把敏感信息使用get方法去请求,使用post方法就不会,它放在请求体body中,这样浏览器也不会缓存。
http1.0和http1.1的区别
连接方面,http1.0是每次发送都会请求一次连接进行TCP三次握手,http1.1是默认使用持久连接来使多个http请求复用同一个TCP连接,来避免使用非持久连接时进行多次挥手而造成的时间延迟。
第二,在资源请求时http1.0协议存在一些资源浪费情况,比如有时候我只需要某个对象的一部分,而1.0就全部给我返回来了,这样会造成服务器带宽的浪费,并且不支持断点续传。1.1引入了rang头域,允许只请求资源的某个部分。
缓存方面,不太懂。。。
还有http2.0,http2.0使用的二进制协议,1.1是文本数据体可以是文本,可以是二进制。2.0是彻底的二进制。
多路复用,在2.0中服务器和客户端都可以随时发送多条请求,并不会造成堵塞问题。
HTTP/2 使用了数据流的概念,因为 HTTP/2 的数据包是不按顺序发送的,同一个连接里面连续的数据包,可能属于不同的请求。因此,必须要对数据包做标记,指出它属于哪个请求。HTTP/2 将每个请求或回应的所有数据包,称为一个数据流。每个数据流都有一个独一无二的编号。数据包发送时,都必须标记数据流 ID ,用来区分它属于哪个数据流。