Get和Post请求的区别
GET请求会把请求参数体现在URL中,通常,不推荐用于敏感信息的传递,另外,传递的数据也会受到URL长度的限制,通常建议值是不超过2K,具体值取决于浏览器和服务器的设置值,向下兼容(取较小的值);
POST请求会把请求参数封装在请求体中,并不体现在URL中,对外不可见,所以,可以用于传递敏感信息,并且,不受到长度限制!
尽管POST请求有一定的优势,但是,也存在一些使用的不便利,例如:不适用于需要刷新的应用场景,因为刷新会反复提交数据;另外,不适合分享URL。
另外,GET请求的速度比POST请求更快!
转发和重定向的区别
转发是1次请求,当请求到服务器的控制器后,控制器可以将请求转发给JSP页面进行处理,整个转发过程是服务器内部行为,对于客户端来说是不可见的,所以,在转发时,客户端的浏览器中的URL并不会发生变化!
重定向是2次请求,当请求到器控制器后,控制器会要求客户端进行重定向,会响应302响应码,并给客户端目标地址,然后客户端会根据目标地址发出第2次请求,所以,在重定向时,客户端的浏览器中的URL会是第2次请求的URL!
由于转发是发生在服务器内部的行为,所以,控制器可以将数据转发给JSP页面!而重定向是2次请求,由于HTTP协议是无状态协议,所以,第1次请求处理的数据不可以直接(可以通过其它技术手段)用于第2次请求时的处理过程!
Cookie和Session的区别
Cookie和Session都用与解决无连接协议的状态保持问题。
Cookie是服务器下发给游览器,保存到游览器端,Cookie是不安全的,会被篡改和禁用,且只能保存字符串且最多保存4K。
Session分为SessionID和Session对象,SessionID是依赖Cookie保存在游览器端的,Session对象保存在服务器端,相比较Cookie,Session保存数据更安全,可以保存任意类型的数据。