接口測(cè)試簡(jiǎn)介
1.什么是接口
接口就是內(nèi)部模塊對(duì)模塊,外部系統(tǒng)對(duì)其他服務(wù)提供的一種可調(diào)用或者連接的能力的標(biāo)準(zhǔn)吆鹤,就好比usb接口,他是系統(tǒng)向外接提供的一種用于物理數(shù)據(jù)傳輸?shù)囊粋€(gè)接口,當(dāng)然僅僅是一個(gè)接口是不能進(jìn)行傳輸?shù)模覀冞€的對(duì)這個(gè)接口怎么進(jìn)行傳輸進(jìn)行進(jìn)行一些設(shè)置和定義滞项。開發(fā)所謂的接口是模塊模塊之間的一種連接,而測(cè)試眼中的接口是一種協(xié)議(對(duì)接口的功能的一種定義)
2.接口的種類和分類
外部接口夭坪,內(nèi)部接口:上層服務(wù)于下層服務(wù)文判,同級(jí)服務(wù)。常見的接口分類http:get室梅,post戏仓,delete,put
系統(tǒng)對(duì)外的接口:比如你要從別的網(wǎng)站或服務(wù)器上獲取資源或信息亡鼠,別人肯定不會(huì)把數(shù)據(jù)庫共享給你赏殃,他只能給你提供一個(gè)他們寫好的方法來獲取數(shù)據(jù),你引用他提供的接口就能使用他寫好的方法间涵,從而達(dá)到數(shù)據(jù)共享的目的仁热。
程序內(nèi)部的接口:方法與方法之間,模塊與模塊之間的交互勾哩,程序內(nèi)部拋出的接口抗蠢,比如bbs系統(tǒng)举哟,有登錄模塊、發(fā)帖模塊等等迅矛,那你要發(fā)帖就必須先登錄妨猩,那么這兩個(gè)模塊就得有交互,它就會(huì)拋出一個(gè)接口诬乞,供內(nèi)部系統(tǒng)進(jìn)行調(diào)用册赛。
接口的分類:1.webservice接口 2.http api接口
webService接口是走soap協(xié)議通過http傳輸,請(qǐng)求報(bào)文和返回報(bào)文都是xml格式的震嫉,我們?cè)跍y(cè)試的時(shí)候都用通過工具才能進(jìn)行調(diào)用森瘪,測(cè)試。
http api接口是走h(yuǎn)ttp協(xié)議票堵,通過路徑來區(qū)分調(diào)用的方法扼睬,請(qǐng)求報(bào)文都是key-value形式的,返回報(bào)文一般都是json串悴势,有g(shù)et和post等方法窗宇,這也是最常用的兩種請(qǐng)求方式。
json是一種通用的數(shù)據(jù)類型特纤,所有的語言都認(rèn)識(shí)它军俊。(json的本質(zhì)是字符串,他與其他語言無關(guān)捧存,只是可以經(jīng)過稍稍加工可以轉(zhuǎn)換成其他語言的數(shù)據(jù)類型粪躬,比如可以轉(zhuǎn)換成Python中的字典,key-value的形式昔穴,可以轉(zhuǎn)換成JavaScript中的原生對(duì)象镰官,可以轉(zhuǎn)換成java中的類對(duì)象等。)
3.各個(gè)接口之間的區(qū)別
通常我們測(cè)試的接口分為get接口和post接口吗货,get的提交方式是明文提交泳唠,把提交的參數(shù)跟在url后面發(fā)送給服務(wù)器,所以不安全宙搬,而且get提交的參數(shù)是有字符限制的且可以被當(dāng)做書簽保存笨腥,但是post的提交方式跟get完全不一樣,post提交的參數(shù)是放在表單里的勇垛,所以不會(huì)存在字符限制脖母,而且因?yàn)閰?shù)是放在表單里,不容易被看到窥摄,所以會(huì)比get更安全镶奉。
4.什么是接口測(cè)試
簡(jiǎn)單的來說接口測(cè)試對(duì)于測(cè)試來說其實(shí)是對(duì)接口協(xié)議的一種測(cè)試,這個(gè)協(xié)議指的是為了讓這個(gè)接口實(shí)現(xiàn)某種需要的功能還設(shè)計(jì)的一種要求。
5.為什么要進(jìn)行接口測(cè)試
因?yàn)椴煌耍ㄇ岸紊诳粒蠖耍┑墓ぷ鬟M(jìn)度不一樣鸽凶,所以我們要針對(duì)最開始出來的接口,以及需要調(diào)用其他公司的(銀行建峭,支付寶玻侥,微信,qq等)一些接口進(jìn)行接口測(cè)試及驗(yàn)證數(shù)據(jù)亿蒸,從安全層面來說凑兰,只依賴前端進(jìn)行限制已經(jīng)完全不能滿足系統(tǒng)的安全要求(繞過前面實(shí)在太容易),需要后端同樣進(jìn)行控制边锁,在這種情況下就需要從接口層面進(jìn)行驗(yàn)證姑食。前后端傳輸、日志打印等信息是否加密傳輸也是需要驗(yàn)證的茅坛,特別是涉及到用戶的隱私信息音半,如身份證,銀行卡等贡蓖。
6.接口測(cè)試流程
需求討論曹鸠,需求評(píng)審,場(chǎng)景設(shè)計(jì)斥铺,編寫用列彻桃,準(zhǔn)備數(shù)據(jù),執(zhí)行測(cè)試
7.怎么進(jìn)行接口測(cè)試
通過工具模擬客戶端向服務(wù)端發(fā)送請(qǐng)求并接受服務(wù)器返回的數(shù)據(jù)來對(duì)接口的功能晾蜘,邏輯業(yè)務(wù)邻眷,異常,安全進(jìn)行測(cè)試
功能測(cè)試:測(cè)試這個(gè)接口的功能是否實(shí)現(xiàn)笙纤,并且測(cè)試這個(gè)接口是否按照接口文檔來進(jìn)行開發(fā)的(比如說接口文檔規(guī)定了一些關(guān)鍵字耗溜,而開大的時(shí)候把關(guān)鍵字改成了其他的關(guān)鍵字组力,因?yàn)樵谡麄€(gè)項(xiàng)目周期省容,并不只有一個(gè)開發(fā)而是有多個(gè),所以可能因?yàn)樵陂_發(fā)過程中因?yàn)殛P(guān)鍵字不一樣導(dǎo)致某些開發(fā)的功能異常燎字,還有自動(dòng)化腳本也會(huì)發(fā)生異常)
邏輯業(yè)務(wù)腥椒,主要指的是一些邏輯業(yè)務(wù)依賴關(guān)系(比如支付寶提交訂單的時(shí)候要保證你是在登錄的情況下,如果你沒有登錄而提交成功了候衍,這就是異常笼蛛,可以修改請(qǐng)求的cookie來測(cè)試)
異常測(cè)試:參數(shù)異常:關(guān)鍵字參數(shù)(應(yīng)用其他的關(guān)鍵字替換進(jìn)行測(cè)試)、參數(shù)為空蛉鹿、參數(shù)多少(通過添加參數(shù)增添個(gè)數(shù))滨砍,參數(shù)錯(cuò)誤。數(shù)據(jù)異常:關(guān)鍵字?jǐn)?shù)據(jù)(填入的數(shù)據(jù)用其他的數(shù)據(jù)語言的數(shù)據(jù)替用)、數(shù)據(jù)長(zhǎng)度惋戏、數(shù)據(jù)為空领追、數(shù)據(jù)錯(cuò)誤。
由于我們項(xiàng)目前后端調(diào)用主要是基于http協(xié)議的接口响逢,所以測(cè)試接口時(shí)主要是通過工具或代碼模擬http請(qǐng)求的發(fā)送與接收绒窑。工具有很多如:postman、jmeter舔亭、soupUI些膨、java+httpclient、robotframework+httplibrary等钦铺。
–也可以用 接口自動(dòng)化來實(shí)現(xiàn)订雾,就是用代碼實(shí)現(xiàn),框架和UI自動(dòng)化差不多矛洞,發(fā)送請(qǐng)求用斷言來判斷葬燎。
8.接口測(cè)試需要用到的工具
接口測(cè)試常用的工具,fiddler抓取請(qǐng)求缚甩,postman模擬客戶端通過對(duì)fiddler抓取的請(qǐng)求修改并發(fā)送到服務(wù)端并接收服務(wù)器返回的數(shù)據(jù)及異常來進(jìn)行驗(yàn)證接口谱净。工具不是固定的,需要根據(jù)項(xiàng)目來進(jìn)行選擇擅威。
9.接口的本質(zhì)及其工作原理
接口你可以簡(jiǎn)單的理解他就是URL壕探,工作原理就會(huì)說URL通過get或者post請(qǐng)求像服務(wù)器發(fā)送一些東西,然后得到一些相應(yīng)的返回值郊丛,本質(zhì)就是數(shù)據(jù)的傳輸與接收李请。
接口測(cè)試用例設(shè)計(jì)思路
目的:測(cè)試接口的正確性和穩(wěn)定性;
原理:模擬客戶端向服務(wù)器發(fā)送請(qǐng)求報(bào)文厉熟,服務(wù)器接收請(qǐng)求報(bào)文后對(duì)相應(yīng)的報(bào)文做處理并向客戶端返回應(yīng)答导盅,客戶端接收應(yīng)答的過程;
重點(diǎn):檢查數(shù)據(jù)的交換揍瑟,傳遞和控制管理過程白翻,還包括處理的次數(shù);
核心:持續(xù)集成是接口測(cè)試的核心绢片;
優(yōu)點(diǎn):為高復(fù)雜性的平臺(tái)帶來高效的缺陷監(jiān)測(cè)和質(zhì)量監(jiān)督能力滤馍,平臺(tái)越復(fù)雜,系統(tǒng)越龐大底循,接口測(cè)試的效果越明顯(提高測(cè)試效率巢株,提升用戶體驗(yàn),降低研發(fā)成本)熙涤;
用例設(shè)計(jì)重點(diǎn):通常情況下主要測(cè)試最外層的兩類接口:數(shù)據(jù)進(jìn)入系統(tǒng)接口(調(diào)用外部系統(tǒng)的參數(shù)為本系統(tǒng)使用)和數(shù)據(jù)流出系統(tǒng)接口(驗(yàn)證系統(tǒng)處理后的數(shù)據(jù)是否正常)阁苞;
PS:設(shè)計(jì)用例時(shí)還需要注意外部接口提供給使用這些接口的外部用戶什么功能困檩,外部用戶真正需要什么功能;
1 輸入
輸入?yún)?shù)主要從以下幾各方面設(shè)計(jì):
a 必填項(xiàng)校驗(yàn)
接口文檔中有是否必填的說明那槽。參考接口文檔即可窗看。
b 參數(shù)長(zhǎng)度校驗(yàn)
參考接口文檔即可。
c 參數(shù)值的有效性校驗(yàn)
如:身份證號(hào)的校驗(yàn) 倦炒,設(shè)計(jì)的數(shù)據(jù)雖然符合身份證號(hào)的規(guī)則显沈,但是并不是真實(shí)有效的身份證號(hào);這種情況就要看身份證號(hào)的校驗(yàn)規(guī)則是什么樣了逢唤,一般都是用的現(xiàn)成的身份證號(hào)校驗(yàn)器拉讯,但是有些是自己寫的校驗(yàn)算法,這個(gè)本人就遇到過這種問題—校驗(yàn)算法寫的不正確鳖藕;
所以參數(shù)有效性的校驗(yàn)就需要結(jié)合實(shí)際業(yè)務(wù)場(chǎng)景魔慷,判斷哪些數(shù)據(jù)是真實(shí)有效的數(shù)據(jù),一定要確保所有真實(shí)有效的數(shù)據(jù)是可以驗(yàn)證通過的著恩。
d 參數(shù)組合校驗(yàn)
不同的參數(shù)組合可能會(huì)存在不同的業(yè)務(wù)場(chǎng)景院尔;
e 如果參數(shù)是枚舉值,一定要各種枚舉值都要測(cè)試喉誊,因?yàn)榭赡懿煌拿杜e走的不同的業(yè)務(wù)流程邀摆;
f 參數(shù)值的默認(rèn)值的校驗(yàn)
參考接口文檔。
g 某些參數(shù)具有特定的生成規(guī)則伍茄,要單獨(dú)針對(duì)生成規(guī)則設(shè)計(jì)用例栋盹,一定要保證真實(shí)有效的數(shù)據(jù)是可以驗(yàn)證通過的。
如身份證號(hào)中間幾位 ***19860701*敷矫,本人就遇到過輸入***19861001*這種值校驗(yàn)不正確例获;
2 接口邏輯
接口邏輯我用的設(shè)計(jì)方法是分支覆蓋—>路徑覆蓋—>場(chǎng)景覆蓋,同樣也是要結(jié)合實(shí)際業(yè)務(wù)場(chǎng)景,根本不發(fā)生的業(yè)務(wù)場(chǎng)景就是無效的測(cè)試用例曹仗。
a 第一步先把業(yè)務(wù)流程圖畫出來榨汤;
b 依據(jù)路程圖中的分支分別設(shè)計(jì),不同分支不同的場(chǎng)景怎茫,這里就要把異常的場(chǎng)景考慮進(jìn)去收壕;如接口超時(shí),接口異常遭居,接口請(qǐng)求成功或失敗啼器,成功后怎么處理旬渠,失敗后流程是否繼續(xù)執(zhí)行俱萍,失敗后的數(shù)據(jù)怎么處理;
以打款接口為例:
打款結(jié)果有打款成功或打款失敗告丢,成功后怎么處理枪蘑,需要回寫打款成功狀態(tài)损谦,失敗后怎么處理,也需要回寫失敗狀態(tài)岳颇,失敗后的數(shù)據(jù)可以操作退回照捡,也可以操作重新出款等等;
c 測(cè)試邏輯設(shè)計(jì)完成后要想一想不同的業(yè)務(wù)場(chǎng)景怎么去測(cè)試话侧,需要哪些人員協(xié)助栗精,
如接口超時(shí)怎么去測(cè)試,請(qǐng)求重復(fù)怎么去測(cè)試瞻鹏,請(qǐng)求并發(fā)怎么去測(cè)試
3 輸出
輸入結(jié)果:正常輸出和異常輸出悲立,常用的方法有錯(cuò)誤推斷法(列舉出程序中可能存在的錯(cuò)誤或者異常,根據(jù)他們選擇測(cè)試用例)
4 以上都完成后新博,要結(jié)合實(shí)際的業(yè)務(wù)場(chǎng)景去掉冗余的用例(即實(shí)際業(yè)務(wù)場(chǎng)景不存在的流程或者輸入數(shù)據(jù))薪夕;
5 如果業(yè)務(wù)流程涉及到狀態(tài)轉(zhuǎn)換,要單獨(dú)設(shè)計(jì)用戶—方法:狀態(tài)轉(zhuǎn)換圖赫悄;
6 涉及到多個(gè)不同金額或者手續(xù)費(fèi)的計(jì)算原献,可能還會(huì)用到正交實(shí)驗(yàn)法去設(shè)計(jì)用例;
7 另外埂淮,用例設(shè)計(jì)中還應(yīng)當(dāng)包含異常流程中產(chǎn)生的異常數(shù)據(jù)的處理流程姑隅;—通常所說的補(bǔ)償機(jī)制,這塊流程能大大的減輕人工運(yùn)營(yíng)的工作量倔撞,當(dāng)然粤策,這需要在做系統(tǒng)設(shè)計(jì)的時(shí)候就需要把這部分考慮進(jìn)去。
接口測(cè)試和app測(cè)試的相同和區(qū)別
1.兩者區(qū)別:App端性能主要關(guān)注與手機(jī)相關(guān)的特性误窖,如手機(jī)cpu叮盘、內(nèi)存、流量霹俺、fps等柔吼。而接口性能主要關(guān)注接口響應(yīng)時(shí)間、并發(fā)丙唧、服務(wù)端資源的使用情況等愈魏。兩種測(cè)試時(shí)的策略和方法都有很大區(qū)別,所以這部分內(nèi)容是需要分開單獨(dú)進(jìn)行測(cè)試的想际,理論上來說這也是不同的部分培漏。
2.接口測(cè)試持續(xù)集成:
對(duì)接口測(cè)試而言,持續(xù)集成自動(dòng)化是核心內(nèi)容胡本,通過持自動(dòng)化的手段我們才能做到低成本高收益牌柄。目前我們已經(jīng)實(shí)現(xiàn)了接口自動(dòng)化,主要應(yīng)用于回歸階段侧甫,后續(xù)還需要加強(qiáng)自動(dòng)化的程度珊佣,包括但不限于下面的內(nèi)容:
a) 流程方面:在回歸階段加強(qiáng)接口異常場(chǎng)景的覆蓋度蹋宦,并逐步向系統(tǒng)測(cè)試,冒煙測(cè)試階段延伸咒锻,最終達(dá)到全流程自動(dòng)化冷冗。
b) 結(jié)果展示:更加豐富的結(jié)果展示、趨勢(shì)分析惑艇,質(zhì)量統(tǒng)計(jì)和分析等
c) 問題定位:報(bào)錯(cuò)信息蒿辙、日志更精準(zhǔn),方便問題復(fù)現(xiàn)與定位滨巴。
d) 結(jié)果校驗(yàn):加強(qiáng)自動(dòng)化校驗(yàn)?zāi)芰π氚澹鐢?shù)據(jù)庫信息校驗(yàn)。
e) 代碼覆蓋率:不斷嘗試由目前的黑盒向白盒下探兢卵,提高代碼覆蓋率习瑰。
f) 性能需求:完善性能測(cè)試體系,通過自動(dòng)化的手段監(jiān)控接口性能指標(biāo)是否正常秽荤。
最后ps:接口測(cè)試需要掌握的知識(shí)甜奄。
①了解系統(tǒng)及內(nèi)部各個(gè)組件之間的業(yè)務(wù)邏輯交互窃款;
】涡帧②了解接口的I/O(input/output:輸入輸出);
〕考獭③了解協(xié)議的基本內(nèi)容烟阐,包括:通信原理、三次握手紊扬、常用的協(xié)議類型蜒茄、報(bào)文構(gòu)成、數(shù)據(jù)傳輸方式餐屎、常見的狀態(tài)碼檀葛、URL構(gòu)成等;
「顾酢④常用的接口測(cè)試工具屿聋,比如:jmeter、loadrunner藏鹊、postman润讥、soapUI等;
∨坦选⑤數(shù)據(jù)庫基礎(chǔ)操作命令(檢查數(shù)據(jù)入庫楚殿、提取測(cè)試數(shù)據(jù)等);
⊙绺А⑥常見的字符類型勒魔,比如:char甫煞、varchar菇曲、text冠绢、int、float常潮、datatime弟胀、string等;
如何學(xué)這些技能喊式?
》趸А①系統(tǒng)間業(yè)務(wù)交互邏輯:通過需求文檔、流程圖岔留、思維導(dǎo)圖夏哭、溝通等很多渠道和方式;
∠琢②協(xié)議:推薦《圖解http》這本書竖配,內(nèi)容生動(dòng),相對(duì)算是入門級(jí)的書籍里逆,其他的還有《圖解tcp进胯、IP》等;
≡骸③接口測(cè)試工具:百度這些工具胁镐,然后你會(huì)發(fā)現(xiàn),好多的教學(xué)博客诸衔、相關(guān)問題解決方案盯漂、以及一些基于工具的書籍,當(dāng)然笨农,選擇合適的書很重要宠能;
④數(shù)據(jù)庫操作命令:學(xué)習(xí)網(wǎng)站(W3C磁餐、菜鳥教程)违崇、教學(xué)博客,以及一些數(shù)據(jù)庫相關(guān)書籍诊霹,入門級(jí)推薦:《mysql必知必會(huì)》羞延、《oracle PL/SQL必知必會(huì)》等
⑤字符類型:還是百度脾还,有句話這么說:內(nèi)事不決問百度伴箩,外事不決問Google。鄙漏。嗤谚。
如何獲取接口相關(guān)信息棺蛛?
一般的企業(yè),都會(huì)由開發(fā)或者對(duì)應(yīng)的技術(shù)負(fù)責(zé)人員編寫接口文檔巩步,里面會(huì)注明接口相關(guān)的地址旁赊、參數(shù)類型、方法椅野、輸入终畅、輸出等信息,如果沒有竟闪,想辦法獲取离福。。炼蛤。
接口文檔八要素:
封面:封面最好是本公司規(guī)定的封面妖爷,有l(wèi)ogo,內(nèi)容標(biāo)題理朋,版本號(hào)絮识,公司名稱,文檔產(chǎn)生日期暗挑;
修訂歷史:表格形式較好些笋除,包括:版本、修訂說明炸裆、修訂日期垃它、修訂人、審核時(shí)間審核人等烹看;
接口信息:接口調(diào)用方式国拇,常用的GET/POST方式,接口地址惯殊;
功能描述:簡(jiǎn)潔清晰的描述接口功能酱吝,比如:接口獲取的信息不包括哪些;
接口參數(shù)說明:每個(gè)參數(shù)都要和實(shí)際中調(diào)用的一樣土思,包括大小寫务热;參數(shù)的含義言簡(jiǎn)意賅的說明,格式己儒,是string 還是int 還是long等格式崎岂;
說明部分,說明參數(shù)值是需要哪里提供闪湾,并詳細(xì)說明參數(shù)怎么生成的冲甘,例如時(shí)間戳,是哪個(gè)時(shí)間段的,參數(shù)是否必填江醇,一些參數(shù)是必須要有的濒憋,有些是可選參數(shù)等;
返回值說明:
√找埂①最好有一個(gè)模板返回值凛驮,并說明每個(gè)返回參數(shù)的意義;
÷墒省②提供一個(gè)真實(shí)的調(diào)用接口辐烂,真實(shí)的返回值遏插;
調(diào)用限制捂贿,安全方面:
加密方式,或者自己公司一個(gè)特殊的加密過程胳嘲,只要雙方采用一致的加密算法就可以調(diào)用接口厂僧,保證了接口調(diào)用的安全性,比如常見的md5了牛;
文檔維護(hù):文檔在維護(hù)的時(shí)候颜屠,如有修改一定要寫上修改日期,修改人鹰祸,對(duì)大的修改要有版本號(hào)變更甫窟;
其他相關(guān)知識(shí)?
get請(qǐng)求蛙婴,post請(qǐng)求的區(qū)別:
1粗井、GET使用URL或Cookie傳參。而POST將數(shù)據(jù)放在BODY中街图。
2浇衬、GET的URL會(huì)有長(zhǎng)度上的限制,則POST的數(shù)據(jù)則可以非常大餐济。
3耘擂、POST比GET安全,因?yàn)閿?shù)據(jù)在地址欄上不可見絮姆。
4醉冤、一般get請(qǐng)求用來獲取數(shù)據(jù),post請(qǐng)求用來發(fā)送數(shù)據(jù)篙悯。
其實(shí)上面這幾點(diǎn)蚁阳,只有最后一點(diǎn)說的是比較靠譜的,第一點(diǎn)post請(qǐng)求也可以把數(shù)據(jù)放到url里面辕近,get請(qǐng)求其實(shí)也沒長(zhǎng)度限制韵吨,post請(qǐng)求看起來參數(shù)是隱式的,稍微安全那么一些些,但是那只是對(duì)于小白用戶來說的归粉,就算post請(qǐng)求椿疗,你通過抓包也是可以抓到參數(shù)的。(唯一區(qū)別就是這一點(diǎn)糠悼,上面3點(diǎn)區(qū)別都是不準(zhǔn)確的)
http狀態(tài)碼:
1届榄、200 2開頭的都表示這個(gè)請(qǐng)求發(fā)送成功,最常見的就是200倔喂,就代表這個(gè)請(qǐng)求是ok的铝条,服務(wù)器也返回了。
2席噩、300 3開頭的代表重定向班缰,最常見的是302,把這個(gè)請(qǐng)求重定向到別的地方了悼枢。
3埠忘、400 400代表客戶端發(fā)送的請(qǐng)求有語法錯(cuò)誤,401代表訪問的頁面沒有授權(quán)馒索,403表示沒有權(quán)限訪問這個(gè)頁面莹妒,404代表沒有這個(gè)頁面。
4绰上、500 5開頭的代表服務(wù)器有異常旨怠,500代表服務(wù)器內(nèi)部異常,504代表服務(wù)器端超時(shí)蜈块,沒返回結(jié)果鉴腻。
webservice接口怎么測(cè)試:
它不需要你在拼報(bào)文了,會(huì)給一個(gè)webservice的地址疯趟,或者wsdl文件拘哨,直接在soapui導(dǎo)入,就可以看到這個(gè)webservice里面的所有接口信峻,也有報(bào)文倦青,直接填入?yún)?shù)調(diào)用,看返回結(jié)果就可以了盹舞。
天氣預(yù)報(bào)wsdl地址:http://www.webservicex.net/globalweather.asmx?wsdl
cookie與session的區(qū)別:
1产镐、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上踢步。
2癣亚、cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙
考慮到安全應(yīng)當(dāng)使用session获印。
3述雾、session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會(huì)比較占用你服務(wù)器的性能
考慮到減輕服務(wù)器性能方面玻孟,應(yīng)當(dāng)使用cookie唆缴。
4、單個(gè)cookie保存的數(shù)據(jù)不能超過4K黍翎,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie面徽。
5、所以個(gè)人建議:
將登陸信息等重要信息存放為session
其他信息如果需要保留匣掸,可以放在cookie中
————————————————
版權(quán)聲明:本文為CSDN博主「剽悍六杯茶」的原創(chuàng)文章趟紊,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明碰酝。
原文鏈接:https://blog.csdn.net/nikita1995/article/details/82494416