1>列举出你知道的Http的状态码并解释
(参考资料:常见的http状态码及其含义 - 五彩斑斓-猫 - 博客园 (cnblogs.com))
1)200:成功,服务器已成功处理了请求,通常这标识服务器提供了请求的网页
2)300:多种选择,针对请求,服务器可执行多种操作,服务器可根据请求者选择一项操作,或提供操作列表供请求者选择
3)400:错误请求,服务器不理解请求的语法
4)401:未授权,请求要求验证身份。对于需要登录的网页,服务器可能返回次响应
5)404:未找到,服务器找不到请求的网页
6)500:服务器内部错误,服务器遇到错误,无法完成请求
2>Http请求中GET请求和POST请求的区别
(详情可以看http请求中get和post方法的区别_海淀码农的博客-CSDN博客_get方法和post的区别)
(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)
(2)post发送的数据更大(get有url长度限制)
(3)post能发送更多的数据类型(get只能发送ASCII字符)
(4)post比get慢
(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据
3>转发和重定向有什么区别
1.重定向访问服务器两次,转发只访问服务器一次
2.转发页面的URL不会改变,而重定向地址会改变
3.转发只能转发到服务器内(前后端共用一个request),重定向可以到任意资源路径(跨域,还会产生新的request 不共享资源)
4>Cookie和Session有什么区别
同:
两者都能设置有效时长
异:
1)cookie将数据存储在浏览器上,session将数据存储在服务器上
2)cookie保存数据不安全
3)当访问量增多,session存储数据增加,占用服务器的内存,会影响到服务器的性能
4)单个cookie保存数据大小不超4k,大部分浏览器限制一个站点最多保存20个cookie,而session不限制
5)session的载体是cookie,通过cookie携带sessionId,达到唯一标识的目的,让信息保存和传递更安全
5>针对GET请求和POST请求的中文乱码问题如何处理
1)post请求在获取数据前转换编码
request.setCharacterEncoding("utf-8");
2)get请求
(参考资料如何解决Get,Post请求里面的中文乱码问题_JAVA成神的博客-CSDN博客_post请求中文乱码问题)
// 获取请求参数
String username = req.getParameter("username");
//1 先以 iso8859-1 进行编码
//2 再以 utf-8 进行解码
username = new String(username.getBytes("iso-8859-1"), "UTF-8");