网络请求中的cookie与set-Cookie的交互模式和作用
生活随笔
收集整理的這篇文章主要介紹了
网络请求中的cookie与set-Cookie的交互模式和作用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
首先我們需要思考,很多問(wèn)題。
1.當(dāng)很多人訪問(wèn)統(tǒng)一網(wǎng)絡(luò)服務(wù)器,服務(wù)器如何來(lái)區(qū)分不同的用戶(hù)呢?
答:sessionid,sessionid保證了瀏覽器和服務(wù)器唯一性的通信憑證號(hào)碼,session保存在服務(wù)器上, sessionid保存在瀏覽器等客戶(hù)端,服務(wù)器根據(jù)瀏覽器發(fā)送來(lái)的sessionid作為一個(gè)唯一的key值找到對(duì)應(yīng)的用戶(hù), 所以說(shuō)sessionid的唯一性用來(lái)區(qū)別和查詢(xún)用戶(hù)信息,因此sessionid的作用不言而喻。2.我們經(jīng)常說(shuō)瀏覽器關(guān)閉后session就會(huì)被清除,那session由生命周期么?
答:有的,這個(gè)是服務(wù)器的配置,瀏覽器關(guān)閉只是把sessionid給清除了,所以在此打開(kāi)瀏覽器并請(qǐng)求服務(wù), 你的登錄狀態(tài)無(wú)法找到,由此你需要重新登錄。 一般情況下,瀏覽器如果不刷新或者不重新請(qǐng)求的話,服務(wù)器一般會(huì)緩存session數(shù)據(jù)20分鐘左右。3.cookie會(huì)被緩存,sessionid保存在cookie中,sessionid一定會(huì)被清除么?
答:不一定,這個(gè)需要服務(wù)器cookie的設(shè)置了,但總體而言,因安全性考量,最好不要緩存sessionid4.cookie保存用戶(hù)狀態(tài)時(shí)需要保存sessionid么?
答:不需要,保存user_id或者其他token即可5.cookie是如何發(fā)送到服務(wù)器的?
答:使用http請(qǐng)求頭,瀏覽器進(jìn)行了封裝,但在一般網(wǎng)絡(luò)編程時(shí)可以加上 如GET / HTTP/1.1 Host: www.guancha.cn Connection: keep-alive Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36 Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Cookie: pgv_pvi=9956446208; pbm_total_match_cookie_281589=1; has_js=1; Hm_lvt_8ab18ec6e3ee89210917ef2c8572b30e=1414852570,1414879794,1414884316,1414901793; Hm_lpvt_8ab18ec6e3ee89210917ef2c8572b30e=14149017936.上面的例子中沒(méi)有sessionid么?
答:是的,沒(méi)有,sessionid只是一個(gè)代稱(chēng),這個(gè)變量名可以改變,比如在php中使用phpsessionid, 在java web中jsessionid7.登錄前有sessionid,登錄后需要重新設(shè)置么?
答:依情況而定,如果安全性要求較高的,可以重新生成一個(gè)sessionid, 另外必須先銷(xiāo)毀之前的一個(gè)sessionid8.sessionid生成后如何發(fā)送到瀏覽器?
答:默認(rèn)情況下,服務(wù)器會(huì)掛載響應(yīng)消息 set-Cookie來(lái)指示瀏覽器更新sessionid,不需要手動(dòng)更新如: HTTP/1.x 200 OK X-Powered-By: PHP/5.2.1 Set-Cookie: TestCookie=something from somewhere; path=/ Expires: Thu, 19 Nov 2007 18:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-type: text/html //如果是按照第7問(wèn)生成的sessionid,這個(gè)也不需要手動(dòng)發(fā)送,當(dāng)然也可以手動(dòng)發(fā)送?
轉(zhuǎn)載地址:https://my.oschina.net/ososchina/blog/339918
總結(jié)
以上是生活随笔為你收集整理的网络请求中的cookie与set-Cookie的交互模式和作用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux内存管理初探
- 下一篇: [shell]C语言调用shell脚本接