网络&&请求常识
基础
1.HTTP是超文本传输协议,信息是明文传输,存在安全问题.HTTPS则解决了HTTP的安全缺陷,在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文能够加密传输。
2.HTTP端口号为80,HTTPS的端口号为443.HTTP连接建立需要向TCP三次握手之后进行HTTP报文传输,HTTP出了和TCP三次握手还需通过SSL/TLS安全协议;
3.HTTPS协议需要向CA(证书权威机构)申请数字证书,来保证服务器的身份可信度。
GET和POST请求区别
1. get参数会放在url中,隐私安全性较差,请求数据的长度受限制,不同浏览器和服务器不同,一般限制在2~8k之间,更加常见的是1k之内,post请求没有长度限制,请求数据放在body;
2. get请求可以缓存,post请求不被缓存,因此get不受服务器刷新的影响;
3. get请求只能进行url编码,post请求支持多种编码格式。
cookie、localStorage、sessionStorage
Ⅰ.cookie属于同源同窗共享,可以设置失效时长,若没设置时长,关闭浏览器后自动清除,传递数据小,大概在4KB左右;
Ⅱ.Web Storage简介如下:
localStorage:属于同源同窗共享,数据会永久保存,除非手动清除,保存数据大概5MB;
Ⅲ.sessionStorage:属于不同浏览器窗口中共享,会话当前数据在浏览器关闭之前有效,保存数据大概5MB。
三者应用场景:
cookie不能进行跨域请求,验证登录、判断是否登陆过网站、保存上次登录的信息、保存上次查看的页面、浏览计数器。
localStorage:跨页面传递参数,长期存在本地数据,只能手动删除。
sessionStorage:临时保存数据,页面刷新,敏感账号一次性登录。
路由跳转 query 和 params
这两个都是跳转url的时候传递参数。query可以用name和path来传递,但是params只能用name来传递,query是直接在url中,页面刷新后url传递的参数依旧在,params在刷新跳转页面的时候就没有了。
注意点
1.params 是路由的一部分,必须要在路由后面添加参数名(实现路由具体跳转,若没添加会导致undefinded)。query是拼接在url后面的参数,而且可有可无;
2.params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。
如果路由后面没有 /:id/:name,地址栏没有参数,刷新后后台就打印不出来,为空。
因此我们不可能让用户不要刷新,所以我们必须在路由后面加上 /:id/:name
3.总结 传参可以使用params和query两种方式。 使用params传参只能用name来引入路由,即push里面只能是name:’xxxx’,不能是path:’/xxx’,因为params只能用name来引入路由,如果这里写成了path,接收参数页面会是undefined!!!。 使用query传参使用path来引入路由。 params是路由的一部分,必须要在路由后面添加参数名。query是拼接在url后面的参数,没有也没关系。 二者还有点区别,直白的来说query相当于get请求,页面跳转的时候,可以在地址栏看到请求参数,而params相当于post请求,参数不会再地址栏中显示。
TCP和UDP
TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。
UDP的优点: 快,比TCP稍安全 UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击…… UDP的缺点: 不可靠,不稳定 因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。 基于上面的优缺点,那么: 什么时候应该使用TCP: 当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。 在日常生活中,常见使用TCP协议的应用如下: 浏览器,用的HTTP FlashFXP,用的FTP Outlook,用的POP、SMTP Putty,用的Telnet、SSH QQ文件传输 ………… 什么时候应该使用UDP: 当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。 比如,日常生活中,常见使用UDP协议的应用如下: QQ语音 QQ视频 TFTP ……
有些应用场景对可靠性要求不高会用到UPD,比如长视频,要求速率
小结TCP与UDP的区别:
- udp是无连接的,tcp是面向连接的
- udp是不可靠传输,tcp是可靠传输
- udp是面向报文传输,tcp是面向字节流传输
- 对系统资源的要求(TCP较多,UDP少)
- UDP程序结构较简单
- TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证