面试:session与cookie的区别,get和post区别

cookie 和 session:

    1. session 在服务器端, cookie 在客户端(浏览器)
    2. session 默认被存在在服务器的一个文件里(不是内存)
    3. session 的运行依赖 session id, 而 session id 是存在 cookie 中的, 也就是说, 如果浏览器禁用了 cookie , 同时 session 也会失效(但是可以通过其它方式实现, 比如在 url 中传递 session_id)
    4. session 可以放在 文件、数据库、或内存中都可以。
    5. 用户验证这种场合一般会用 session
 

get和post:

get参数通过url传递,post放在request body中。

get请求在url中传递的参数是有长度限制的,而post没有。

get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。

get请求只能进行url编码,而post支持多种编码方式

get请求会浏览器主动cache,而post支持多种编码方式。

get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。
 

GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

GET产生一个TCP数据包;POST产生两个TCP数据包。

长的说:

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

猜你喜欢

转载自blog.csdn.net/damei2017/article/details/86649447