首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

HTTP协议冷知识大全

HTTP协议是纯文本协议,没有任何加密措施。通过HTTP协议传输的数据都可以在网络上被完全监听。如果用户登陆时将用户名和密码直接明文通过HTTP协议传输过去了,那么密码可能会被黑客窃取。 一种方法是使用非对称加密。GET登陆页面时,将公钥以Javascript变量的形式暴露给浏览器。然后用公钥对用户的密码加密后,再将密码密文、用户名和公钥一起发送给服务器。服务器会提前存储公钥和私钥的映射信息,通过客户端发过来的公钥就可以查出对应的私钥,然后对密码密文进行解密就可以还原出密码的明文。 为了加强公钥私钥的安全性,服务器应该动态生成公钥私钥对,并且使用后立即销毁。但是动态生成又是非常耗费计算资源的,所以一般服务器会选择Pool方法提供有限数量的公钥私钥对池,然后每隔一段时间刷新一次Pool。

02

URL编码及Java发起URL请求的问题详解

今天我们来讲一下URL编码(同时被称为Percent-encode,百分比编码)。虽然它相对简单,但是非常的重要,至于为什么,通过我后面的介绍也许你就会明白。 虽然叫做URLEncode,但是它普遍用于“统一资源标识符(URI)”中,熟悉HTTP协议的同学应该知道,URL是URI的一部分。同时,URL编码还被用在html页面的表单提交上,通常HTTP协议会先将表单数据进行编码,然后再执行POST或者GET请求。 实际上我们每天都能够看到URL编码和解码,可能你没有发现而已。最简单的一个例子,我们知道表单在传输数据的时候是采用键值对的方式,即key-value,拼装参数的时候就是key1=value1&key2=value2。**如果我们的key1=1&value(这是一个整体),然后key2=value2,如果不进行编码,传递的时候就成了key1=1&value&key2=value2,看到了吧,这就会造成语义上的歧义,我们在接收表单数据的时候就无法正常接收。**当然,作为普通用户来说,一般不会遇到这个问题,那是因为开发人员已经处理过了,但是我们就是这些开发人员,所以必须了解。 为了避免出现这种歧义,我们应该怎么做呢?

02

MVC模式中Controller控制器为什么是Servlet?怎么理解?

马克-to-win:动态网站项目开发中,当我们jsp表单一提交,应提交给谁呢?上一章,我们在讲jsp技术的时候,当时我们曾把jsp提交给另外一个jsp处理。这实际上是一个非常不好的实践,为什 么呢?因为Servlet的优势就是java代码好维护。换句话说,如果你要维护纯java代码的话,你应宁愿放在Servlet当中,也不愿放在jsp当中。因为jsp在能运行前,还需转成一个Servlet。所以当你编写jsp的时候,在eclipse当中,当你把光标放在一个变量上时,这个变量在文 件的其他地方,不会高亮。但当你编写Servlet时就不是这样了。马克-to-win:所以在实践当中,jsp一般我们提交给一个Servlet。 Servlet负责控制 (Controller[C])整个儿jsp(V[V]iew)表单提交后的流程。第一步,从request当中获取提交上来的数据。第二步调用bean (M [M]odel),让bean去处理这些数据,并返回结果。通常,复杂的业务处理过程需要和数据库打交道。第三步,处理返回的数据,比如放在 Session当中,之后做跳转。第二步通常非常复杂,代码量比较大。如果直接放在Servlet当中。Servlet会变得非常臃肿,不利于我们维护代 码。

03
领券