亲宝软件园·资讯

展开

Java每日一面(Part1:计算机网络)[19/11/25]

故事我忘了° 人气:1
作者:晨钟暮鼓c
个人微信公众号:程序猿的月光宝盒

1. HTTP相关[2]

1.1Get请求和Post请求的区别

从三个层面来回答:

1.1.1 从HTTP报文层面:

​ Get请求将请求信息放在URL后面,请求信息和URL之间用问号(?)隔开,多个请求信息之间用&隔开,形式是键值对的形式,且有长度限制.

​ Post请求是放在报文体中,想获得请求信息必须请求报文,因此,安全性较Get要高一些,但是可以通过抓包工具获取信息,所以不是绝对安全,具体还要靠https,没有长度限制

1.1.2 从数据库层面:

​ Get符合幂等性和安全性,Post不符合

幂等性:

​ 对数据库的一次操作和多次操作获得的结果是一致的

安全性:

​ 对数据库的操作没有改变数据库中的数据

1.1.3 从其他层面上看

​ Get可以被缓存,被存储,会被保存在浏览器的浏览记录中,以Get方式发送的URL可以保存为浏览器书签,而post不行

1.2 Cookie和Session的区别:

​ 两者产生的原因:HTTP的最大特点:无状态,每次登陆某网站都要不厌其烦输入帐号密码,对此,就产生的Cookie和Session.

1.2.1 Cookie简介:

​ 是由服务器发送给客户端的特殊信息,以文本的形式存放在客户端

​ 客户端再次请求的时候,会把Cookie回发

​ 服务器接收到后,会解析Cookie生成 与客户端相对应的内容

1.2.1.1 Cookie的设置和发送过程

  1. 客户端发送http请求到服务端,

  2. 服务端发送http响应到客户端,其中包括了Set-Cookie头部

  3. 客户端发送http请求到服务端,包括了Cookie头部

  4. 服务器发送http相应到客户端


1.2.2 Session简介

服务端的机制,在服务端上保存信息

解析客户端请求并操作Session id,按需保存状态信息

1.2.2.1 Session的实现方式
1.使用Cookie实现

服务器给每个Session分配一个唯一的JSessionID,并通过Cookie发送给客户端,当客户端发送新的请求的时候,将在Cookie头中携带JSessionID,这样服务器就能找到相对应的Session

2.使用URL回写实现

​ 指服务器在发送给浏览器的所有页面中都携带JSessionID的参数,这样客户端点击任何一个连接都会把JSessionID的值传给服务端

1.2.3 Cookie和Session的区别

1.Cookie数据存放在浏览器,Session存放在服务器

2.Session相对Cookie安全

3.若考虑服务器负担,应当使用Cookie


1.3 HTTP和HTTPS的区别

1.3.1 HTTPS简介

是一个以安全通行为目的的传输协议,是一个安全版的Http

1.3.2 SSL(Security Sockets Layer,安全套接层)

1.为网络通信提供安全及数据完整性的一种安全协议

2.是操作系统对外提供的API,SSL3.0后改名为TLS

那么它如何保护安全及数据完整性?

​ 采用身份验证数据加密保证网络通信的安全和数据的完整性

1.3.3加密方式

1.对称加密:

​ 加密和解密都使用同一个秘钥,性能较高,安全性相对不强

2.非对称加密:

​ 加密和解密使用的秘钥都是不同的,分别称为公钥和私钥,性能较低,安全性超强

3.哈希算法:

​ 将任意长度的信息转换为固定长度的值,算法不可逆(常见的MD5算法)

4.数字签名:

​ 证明某个消息或者文件是从某人发出/认同的

1.3.4Https数据传输流程

1.浏览器将支持的加密算法信息发送给服务器

2.服务器选择一套浏览器支持的加密算法,以证书的形式回发给浏览器

3.浏览器验证证书的合法性,并结合证书公钥加密信息发送给服务器

4.服务器使用私钥解密信息,验证哈希,加密响应信息回发浏览器

5.浏览器解密响应信息,并对信息进行验证,之后进行加密交互数据

1.3.5 HTTP和HTTPS的区别

1.HTTPS需要到CA申请证书,HTTP不需要

2.HTTPS密文传输,HTTP明文传输

3.连接方式不同,HTTPS默认使用443端口,http使用80端口

4.HTTPS=HTTP+加密+认证+完整性保护,较HTTP安全

1.3.6HTTPS真的安全吗

未必

1.浏览器默认填充http://,请求需要进行跳转,有被劫持的风险

2.可以使用HSTS(HTTP Strict Transport Security)优化

以上,计算机网络部分结束

加载全部内容

相关教程
猜你喜欢
用户评论