1. 请描述method="get"和"post"有什么区别?
第一方面:安全性
get把数据追加在url上,明文显示,不安全,而post不是明文显示,相对安全。
第二方面:数据允许大小
get允许传递的数据只有2kb,而post则不限,
get只能向服务器发送ASCII字符,而post则可以发送整个ISO10646中的字符
第三方面:数据流
get只能传递字符型数据,不能传递二进制流数据,而post既可传递字符流也可传递二进制流。
第四方面:get和post对应的enctype属性有区别
enctype有两个值,默认值为application/x-www-form-urlencoded
而另一个值multipart/form-data只能用于post。
第五方面:由于一个get得到的结果直接对应到一个URI
所以get的结果页面有可能被浏览器缓存。而post一般则不能。
2. 简述cookie和session的区别
cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。
当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,
很多浏览器都限制一个站点最多保存20个cookie。
cookie 和session 的联系: session是通过cookie来工作的,可以考虑将登陆信息等重要信息存放为session
其他信息如果需要保留,可以放在cookie中。
在购物网站中通常将用户加入购物车的商品联通session_id记录到数据库中,
当用户再次访问是,通过sessionid就可以查找到用户上次加入购物车的商品。
因为sessionid是唯一的,记录到数据库中就可以根据这个查找了。
cookie
|
session
|
保存在客户端中
|
保存在服务器中
|
只能保存字符串
|
可以保存任意类型数据
|
保存的数据大小和浏览器有关 一般在4k左右
|
保存的数据大小理论上没有限制 只要服务器内存够用就行
|
相对安全性较低
|
安全性较高
|
分担了服务器的压力
|
增加了服务器压力
|
Cookie
将信息保存在客户端(浏览器)
是客户端保存用户状态的一种技术
当客户端访问服务器时
服务器处理请求之后
会将少量的数据发送给客户端
客户端会将这些数据通过cookie保存到计算机的硬盘上。
当客户端再次访问服务器时
会将这些数据发送给服务器
这样我们就实现了客户端和服务器的多次交互
使得这些数据实现来回传递。
Session
在服务器端维护用户状态的一种技术
当浏览器访问服务器时 服务器会自动创建一个session对象(HttpSession)
该对象有一个唯一的标识号 jsessionid
并且服务器在默认情况下 会使用cookie技术 将jsessionid发送给浏览器并保存
当浏览器下次访问时 会将jsessionid发送给服务器
服务器通过jsessionid找到对应的session对象
通过这种方法 可以实现维护用户信息的目的
3. http响应常用的状态码有哪些?分别是什么含义?
常用状态码:
状态码
|
代表状态
|
200
|
成功
|
302
|
重定向的状态码
|
404
|
资源不存在 访问命令寻找不到
|
405
|
请求方式不正确
|
500
|
服务器内部异常 代码出现异常
|
状态码<400
|
成功
|
状态码>=400
|
失败
|