Go面試題
1、從一個(gè)搜索框輸入數(shù)據(jù)到最后獲取到搜索結(jié)果,這中間有哪些流程
前端的瀏覽器發(fā)送http請(qǐng)求,在發(fā)送請(qǐng)求的時(shí)候需要指定url和請(qǐng)求的方法,同時(shí)還會(huì)在請(qǐng)求頭中添加一些信息,比如cookie
后端服務(wù)器接收請(qǐng)求,需要解析請(qǐng)求頭和請(qǐng)求體,獲取關(guān)鍵詞等信息
后端服務(wù)器進(jìn)行查詢,查詢涉及到sql編寫(xiě)和執(zhí)行,以及數(shù)據(jù)庫(kù)的連接和事務(wù)的處理
后端服務(wù)器對(duì)查詢結(jié)果進(jìn)行處理,比如分頁(yè),排序
前端瀏覽器進(jìn)行渲染
2、cookie是干嘛的,和session有什么區(qū)別
session和cookie都是web開(kāi)發(fā)中用來(lái)保存狀態(tài)信息的技術(shù),為了能夠讓服務(wù)器識(shí)別出來(lái)不同的用戶或者瀏覽器,并提供相應(yīng)的服務(wù)或者頁(yè)面
ccokie是瀏覽器保存在用戶本地計(jì)算機(jī)上的小文件,在用戶下次訪問(wèn)同一網(wǎng)站時(shí)被讀取和檢索,在發(fā)送http請(qǐng)求的時(shí)候,瀏覽器會(huì)自動(dòng)將該網(wǎng)站的cookie信息一起發(fā)送到服務(wù)器端,服務(wù)端可以通過(guò)讀取cookie信息來(lái)識(shí)別出哪個(gè)用戶發(fā)來(lái)的請(qǐng)求
session是一種由服務(wù)器創(chuàng)建的,用來(lái)保存用戶狀態(tài)信息的數(shù)據(jù)結(jié)構(gòu),可以存儲(chǔ)在服務(wù)器內(nèi)存中,文件中,原理:服務(wù)器在為每個(gè)用戶創(chuàng)建會(huì)話生成一個(gè)唯一的sessionid,將該id返回給瀏覽器,瀏覽器在后續(xù)的請(qǐng)求中將該id作為請(qǐng)求頭發(fā)送給服務(wù)器,服務(wù)器通過(guò)該id獲取用戶相關(guān)的會(huì)話數(shù)據(jù)
區(qū)別:
1、存儲(chǔ)的位置不同
2、存儲(chǔ)的容量不同
3、安全性不同:cookie存儲(chǔ)在客戶端,容易被竊取和篡改,session存儲(chǔ)在服務(wù)器端,安全性較高
4、生命周期不同;cookie可以設(shè)置過(guò)期的時(shí)間session一般在用戶關(guān)閉瀏覽器或者長(zhǎng)時(shí)間沒(méi)有操作后自動(dòng)失效
5、使用的場(chǎng)景不同;cookie主要用于存儲(chǔ)用戶的登錄狀態(tài),購(gòu)物車信息,網(wǎng)站的偏好設(shè)置?等信息,session主要用于存儲(chǔ)用戶的登錄信息,用戶購(gòu)買(mǎi)歷史,用戶訪問(wèn)的頁(yè)面等