面试题总结——第4篇 左/右值引用 http/https的区别 post/get

10.左值引用和右值引用

变量的两个属性,左值和右值。(左值既能出现在=左边也能够出现在=右边,而右值只能出现在=右边)左值是变量的地址,右值是变量存储的内容。变量本质即存储空间的名称,编译后变为对应地址。[左值是可以被修改的,右值仅能通过其成员函数被修改]

C++11提出了右值引用的概念,实现了转移语句和精确传递

  • 消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率

  • 能够更简洁明确地定义泛型函数

eg: T&& a = ReturnValue();

当我们调用一个返回右值的函数时,当函数返回过后,函数返回的右值的生命周期也就结束了,但是当我们通过一个右值引用来接受时,该右值会重新获得生命,只要我们的右值引用a存在,该右值也同时存在,这样我们就不会向T a = ReturnValue()一样接收对象时多一次对象的析构和构造,直接绑定了函数返回的右值

11.https和http有什么区别?

http协议不适合传输一些敏感信息(密码支付信息),https在其基础上增加了SSL协议(依靠证书来验证服务器身份并将通信加密)//网景设计的SSL协议

1>https协议需要到ca申请证书,一般免费证书较少,所以一般需要支付费用

2>http是超文本传输协议,信息是明文传输,htttp则是具有安全性的ssl加密传输协议

3>http和https是完全不同的连接方式,用的端口也不一样,前者是80,后者是443

4>https协议握手阶段费时,且连接缓存不如http高效

12.GET和POST的区别

  • GET用于获取信息,用URL传参,数据长度受限,可缓存

  • POST用于提交(修改)表单数据,数据长度不受限,不可缓存

安全性:由于http协议在网络上是明文传输的,所以不存在安全性不一致

长度限制:由于GET使用URL传输,http对URL没有长度限制,但是浏览器和服务器由于处理长URL需要消耗比较多的资源所以需要限制长度

参考文献:https://zhuanlan.zhihu.com/p/57361216?utm_source=qq&utm_medium=social

猜你喜欢

转载自blog.csdn.net/ladykiller21/article/details/89073563