Pythonweb框架中的setcookie究竟做了什么?session與cookie關(guān)系

用python web框架的同學(xué)都知道 ,在使用例如 django,flask,tornado等這些web框架的時(shí)候,都有已經(jīng)為大家封裝好了的 setcookie的方法。那么這個(gè)方法究竟做了什么。可能有些新人朋友并不能很好的理解。那么今天dewei就帶著大家剖析一下,這些web框架里的類(lèi)似 setcookie的方法(名字可能各不相同),究竟做了什么?

創(chuàng)新互聯(lián)建站-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比慶城網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式慶城網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋慶城地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴(lài)。

首先大家知道,在一個(gè)http請(qǐng)求中,至少包含兩個(gè)結(jié)構(gòu),1是headers,請(qǐng)求的頭信息,里邊包含發(fā)起者的一些信息和一些附帶的自定義信息;2是body 請(qǐng)求傳輸?shù)臄?shù)據(jù)。那么在headers中,有一個(gè)key 叫做 "Set-Cookie",當(dāng)web服務(wù)器的請(qǐng)求response返回瀏覽器端的時(shí)候,如果 這個(gè)response的headers中包含“Set-Cookie”,那么瀏覽器就認(rèn)為有要種植到cookie里的鍵值對(duì)。那么這個(gè)“Set-Cookie”的結(jié)構(gòu)如何呢?我們?cè)谶M(jìn)一步和大家討論。

Pythonweb框架中的setcookie究竟做了什么?session與cookie關(guān)系

我們知道了headers中有一個(gè)“Set-Cookie” 他是一個(gè)鍵值對(duì),那么值就是要存儲(chǔ)的cookie信息。那么我們先來(lái)寫(xiě)一個(gè)demo,根據(jù)demo 我們來(lái)解釋他們分別是什么。

"Set-Cookie": "token=xxxxx;Domain=xxxxx;Path=/;Expires=GMT"

好。我們看上邊的例子,有一個(gè)setcookie,他的value是一個(gè)字符串,那么大家和我從前往后看:token=xxxxx 是我們要存入cookies里的鍵值對(duì),domain是你要將這個(gè)鍵值對(duì)存入哪個(gè)域名下,比如 www.abc.com; 那么當(dāng)存在這個(gè)域名下之后,只有在這個(gè)域下才可以看到這個(gè)cookie信息,path是具體顯示在這個(gè)域名下的哪個(gè)path,一般就在根就好了,最后的是expires是一個(gè)該鍵值對(duì)的過(guò)期時(shí)間,這個(gè)時(shí)間,是一個(gè)GMT時(shí)間(要加8小時(shí)喲)。當(dāng)然還有其他的參數(shù),比如httponly,只有設(shè)置這個(gè)cookie的后端才可以獲取和修改,max-age 他是一個(gè)有效期按照秒來(lái)計(jì)算的,一般和expires有一個(gè)存在就可以了。這里邊有一個(gè)坑在于,設(shè)置時(shí)間的時(shí)候,有的框架是給一個(gè)datetime,有的是給一個(gè)秒,都不一樣,但如果從原始狀態(tài)設(shè)置的時(shí)候,是要設(shè)置 GMT時(shí)間的。這里要注意下。另外這里每個(gè)參數(shù)之間用 “;”隔開(kāi),那么 那些web框架里的類(lèi)似setcookie就是將你傳進(jìn)去的參數(shù)封裝好后放入headers中~更多的一些參數(shù)可以查看 這里

最后我們?cè)賮?lái)說(shuō)一說(shuō)session,對(duì)于session 大家第一個(gè)理解的內(nèi)容普遍(初級(jí))是:它存在服務(wù)器端。沒(méi)有錯(cuò),他的最終的value的確存在服務(wù)端,但其實(shí)session和cookie也有著重要的牽絆。當(dāng)生成一個(gè)session的時(shí)候,會(huì)生成一個(gè)key:value,比如 session_12138:uidxxxxx 這是一個(gè)鍵值對(duì)。但實(shí)際上他依然會(huì)種一個(gè)cookie到瀏覽器,類(lèi)似這樣的鍵值對(duì) session_token: session_12138 。大家有沒(méi)有發(fā)現(xiàn)什么?這個(gè)cookie里的value 實(shí)際上就是 服務(wù)器端的 key,所以 通過(guò)cookie取出 session的key,在通過(guò)key取得session最終的結(jié)果。這就是session與cookie的關(guān)系~有的新人朋友,對(duì)這里理解不是非常透徹,今天解釋一下相關(guān)的流程,希望對(duì)大家有所幫助~

當(dāng)前名稱(chēng):Pythonweb框架中的setcookie究竟做了什么?session與cookie關(guān)系
文章起源:http://muchs.cn/article26/ihsgcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計(jì)、小程序開(kāi)發(fā)、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)