HTTP

1、說說你對http的理解

1)首先用戶端與服務(wù)器需要建立連接据块。

2)建立連接后,用戶端發(fā)送一個(gè)請求給服務(wù)器

3)服務(wù)器接到請求后折剃,給予相應(yīng)的響應(yīng)信息另假,

4)用戶端接收服務(wù)器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后用戶端與服務(wù)器斷開連接怕犁。

HTTP是一個(gè)應(yīng)用層協(xié)議边篮,由請求和響應(yīng)構(gòu)成,是一個(gè)標(biāo)準(zhǔn)的客戶端服務(wù)器模型奏甫。HTTP是一個(gè)無狀態(tài)的協(xié)議

2戈轿、說說HTTPS和HTTP的區(qū)別

  1、https協(xié)議需要到ca申請證書阵子,一般免費(fèi)證書較少凶杖,因而需要一定費(fèi)用。

  2款筑、http是超文本傳輸協(xié)議智蝠,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議奈梳。

  3杈湾、http和https使用的是完全不同的連接方式,用的端口也不一樣攘须,前者是80漆撞,后者是443。

  4于宙、http的連接很簡單浮驳,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸捞魁、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議至会,比http協(xié)議安全。

HTTP的請求:

HTTP請求方法

根據(jù)HTTP標(biāo)準(zhǔn)谱俭,HTTP請求可以使用多種請求方法奉件。

HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。

HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法昆著。

GET? ? 請求指定的頁面信息县貌,并返回實(shí)體主體。

HEAD? ? 類似于get請求凑懂,只不過返回的響應(yīng)中沒有具體的內(nèi)容煤痕,用于獲取報(bào)頭

POST? ? 向指定資源提交數(shù)據(jù)進(jìn)行處理請求。POST請求可能會(huì)導(dǎo)致新的資源的建立和/或已有資源的修改。

PUT? ? 從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容摆碉。

DELETE? ? ? 請求服務(wù)器刪除指定的頁面祟敛。

CONNECT? ? HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。

OPTIONS? ? 允許客戶端查看服務(wù)器的性能兆解。

TRACE? ? 回顯服務(wù)器收到的請求,主要用于測試或診斷跑揉。

響應(yīng):

HTTP之狀態(tài)碼

狀態(tài)代碼有三位數(shù)字組成锅睛,第一個(gè)數(shù)字定義了響應(yīng)的類別,共分五種類別:

1xx:指示信息--表示請求已接收历谍,繼續(xù)處理

2xx:成功--表示請求已被成功接收现拒、理解、接受

3xx:重定向--要完成請求必須進(jìn)行更進(jìn)一步的操作

4xx:客戶端錯(cuò)誤--請求有語法錯(cuò)誤或請求無法實(shí)現(xiàn)

5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請求

常見狀態(tài)碼:

200 OK? ? ? ? ? ? ? ? ? ? ? ? //客戶端請求成功

301? Moved Permanently? //永久移動(dòng)望侈。請求的資源已被永久的移動(dòng)到新URI印蔬,返回信息會(huì)包括新的URI,瀏覽器會(huì)自動(dòng)定向到新URI脱衙。今后任何新的請求都應(yīng)使用新的URI代替

302? Found? ? ? ? ? ? ? ? ? ? ? // 臨時(shí)移動(dòng)侥猬。與301類似。但資源只是臨時(shí)被移動(dòng)捐韩⊥诉耄客戶端應(yīng)繼續(xù)使用原有URI 303? See Other? ? ? ? ? ? ? ? //查看其它地址。與301類似荤胁。使用GET和POST請求查看? ? ? ? ? 304? Not Modified? ? ? ? //未修改瞧预。所請求的資源未修改,服務(wù)器返回此狀態(tài)碼時(shí)仅政,不會(huì)返回任何資源垢油。客戶端通常緩存訪問過的資源圆丹,通過提供一個(gè)頭信息指出客戶端希望只返回在指定日期之后修改的資源 305? Use Proxy? ? ? ? ? ? ? ? //使用代理滩愁。所請求的資源必須通過代理訪問? ? ? ? ? ? ? ? ? ? ?

400 Bad Request? ? ? ? ? ? ? //客戶端請求有語法錯(cuò)誤,不能被服務(wù)器所理解

401 Unauthorized? ? ? ? ? ? ? //請求未經(jīng)授權(quán)辫封,這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用

403 Forbidden? ? ? ? ? ? ? ? ? //服務(wù)器收到請求惊楼,但是拒絕提供服務(wù)

404 Not Found? ? ? ? ? ? ? ? //請求資源不存在,eg:輸入了錯(cuò)誤的URL

500 Internal Server Error? ? //服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤

一個(gè)頁面從url敲如地址到頁面顯示的全過程

1秸讹、瀏覽器地址欄輸入url

2檀咙、瀏覽器會(huì)先查看瀏覽器緩存--系統(tǒng)緩存--路由緩存,如有存在緩存璃诀,就直接顯示弧可。如果沒有,接著第三步

3劣欢、域名解析(DNS)獲取相應(yīng)的ip

4棕诵、瀏覽器向服務(wù)器發(fā)起tcp連接裁良,與瀏覽器建立tcp三次握手

5、握手成功校套,瀏覽器向服務(wù)器發(fā)送http請求价脾,請求數(shù)據(jù)包

6、服務(wù)器請求數(shù)據(jù)笛匙,將數(shù)據(jù)返回到瀏覽器

7侨把、瀏覽器接收響應(yīng),讀取頁面內(nèi)容妹孙,解析html源碼秋柄,生成DOm樹

8、解析css樣式蠢正、瀏覽器渲染骇笔,js交互

9谆焊、請求頁面中需要的js腳本和圖片或者樣式表

前端的安全CSRF穷遂,XSS昼牛,sql注入

CSRF

CSRF概念:CSRF跨站請求偽造(Cross—Site Request Forgery)怨绣,存在巨大的危害性汹来,你可以這樣來理解:?? ? ? 攻擊者盜用了你的身份摔握,以你的名義發(fā)送惡意請求盖彭,對服務(wù)器來說這個(gè)請求是完全合法的不见,但是卻完成了攻擊者所期望的一個(gè)操作葱跋,比如以你的名義發(fā)送郵件持寄、發(fā)消息,盜取你的賬號娱俺,添加系統(tǒng)管理員稍味,甚至于購買商品、虛擬貨幣轉(zhuǎn)賬等荠卷。 如下:其中Web A為存在CSRF漏洞的網(wǎng)站模庐,Web B為攻擊者構(gòu)建的惡意網(wǎng)站,User C為Web A網(wǎng)站的合法用戶油宜。

CSRF攻擊攻擊原理及過程如下:

用戶C打開瀏覽器掂碱,訪問受信任網(wǎng)站A,輸入用戶名和密碼請求登錄網(wǎng)站A慎冤;

在用戶信息通過驗(yàn)證后疼燥,網(wǎng)站A產(chǎn)生Cookie信息并返回給瀏覽器,此時(shí)用戶登錄網(wǎng)站A成功蚁堤,可以正常發(fā)送請求到網(wǎng)站A醉者;

用戶未退出網(wǎng)站A之前,在同一瀏覽器中,打開一個(gè)TAB頁訪問網(wǎng)站B撬即;

網(wǎng)站B接收到用戶請求后立磁,返回一些攻擊性代碼,并發(fā)出一個(gè)請求要求訪問第三方站點(diǎn)A剥槐;

瀏覽器在接收到這些攻擊性代碼后唱歧,根據(jù)網(wǎng)站B的請求,在用戶不知情的情況下攜帶Cookie信息粒竖,向網(wǎng)站A發(fā)出請求颅崩。網(wǎng)站A并不知道該請求其實(shí)是由B發(fā)起的,所以會(huì)根據(jù)用戶C的Cookie信息以C的權(quán)限處理該請求温圆,導(dǎo)致來自網(wǎng)站B的惡意代碼被執(zhí)行。? ? ? ?

防御CSRF攻擊:

? ? ? 目前防御 CSRF 攻擊主要有2種策略:驗(yàn)證 HTTP 請求的Referer 字段孩革;在請求地址中添加 token 并驗(yàn)證

XSS

XSS, 即為(Cross Site Scripting), 中文名為跨站腳本, 是發(fā)生在目標(biāo)用戶的瀏覽器層面上的岁歉,當(dāng)渲染DOM樹的過程成發(fā)生了不在預(yù)期內(nèi)XSS(Cross Site Scripting),跨站腳本攻擊膝蜈,是一種允許攻擊者在另外一個(gè)用戶的瀏覽器中執(zhí)行惡意代碼腳本的腳本注入式攻擊锅移。本來縮小應(yīng)該是CSS,但為了和層疊樣式(Cascading Style Sheet,CSS)有所區(qū)分饱搏,故稱XSS執(zhí)行的JS代碼時(shí)非剃,就發(fā)生了XSS攻擊。

1推沸、持續(xù)型XSS攻擊:惡意腳本來源于網(wǎng)站的數(shù)據(jù)庫

1备绽、攻擊者通過評論表單提交將<script\>alert(‘a(chǎn)aa’)</script\>提交到網(wǎng)站

2、網(wǎng)站后端對提交的評論數(shù)據(jù)不做任何操作鬓催,直接存儲到數(shù)據(jù)庫中

3肺素、其他用戶訪問正常訪問網(wǎng)站,并且需要請求網(wǎng)站的評論數(shù)據(jù)

4宇驾、網(wǎng)站后端會(huì)從數(shù)據(jù)庫中取出數(shù)據(jù)倍靡,直接返回給用戶

5、用戶得到頁面后课舍,直接運(yùn)行攻擊者提交的代碼<script>alert(‘a(chǎn)aa’)</script>`塌西,所有用戶都會(huì)在網(wǎng)頁中彈出aaa的彈窗

2、反射型XSS攻擊:惡意腳本來源于受害者的請求

在一個(gè)反射型XSS攻擊中筝尾,惡意文本屬于受害者發(fā)送給網(wǎng)站的請求中的一部分捡需。隨后網(wǎng)站又把惡意文本包含進(jìn)用于響應(yīng)用戶的返回頁面中,發(fā)還給用戶筹淫。

1栖忠、用戶誤點(diǎn)開了帶攻擊的url :http://xxx?keyword=<script\>alert('aaa')</script\>

2、網(wǎng)站給受害者的返回中包含了來自URL的的惡意文本

3、用戶的瀏覽器收到文本后執(zhí)行頁面庵寞,會(huì)在網(wǎng)頁中彈窗aaa

3狸相、基于DOM的XSS攻擊

基于DOM的XSS攻擊是反射型攻擊的變種。服務(wù)器返回的頁面是正常的捐川,只是我們在頁面執(zhí)行js的過程中脓鹃,會(huì)把攻擊代碼植入到頁面中

1、用戶誤點(diǎn)開了帶攻擊的url :http://xxx?name=<script\>alert('aaa')</script\>

2古沥、網(wǎng)站給受害者的返回中正常的網(wǎng)頁

3瘸右、用戶的瀏覽器收到文本后執(zhí)行頁面合法腳本,這時(shí)候頁面惡意腳本會(huì)被執(zhí)行岩齿,會(huì)在網(wǎng)頁中彈窗aaa

如何防止攻擊

XSS攻擊其實(shí)就是代碼的注入太颤。用戶的輸入被編譯成惡意的程序代碼。所以盹沈,為了防范這一類代碼的注入龄章,需要確保用戶輸入的安全性。對于攻擊驗(yàn)證乞封,我們可以采用以下兩種措施:

1做裙、編碼,就是轉(zhuǎn)義用戶的輸入肃晚,把用戶的輸入解讀為數(shù)據(jù)而不是代碼

2锚贱、校驗(yàn),對用戶的輸入及請求都進(jìn)行過濾檢查关串,如對特殊字符進(jìn)行過濾拧廊,設(shè)置輸入域的匹配規(guī)則等

SQL注入

SQL注入就是一種通過操作輸入來修改后臺SQL語句達(dá)到代碼執(zhí)行進(jìn)行攻擊目的的技術(shù)晋修。

cookie卦绣、sessionStorage、localStorage的區(qū)別

1飞蚓、cookie數(shù)據(jù)始終在同源的http請求中攜帶(即使不需要)滤港,即cookie在瀏覽器和服務(wù)器間來回傳遞,而 sessionStorage和localStorage不會(huì)自動(dòng)把數(shù)據(jù)發(fā)送給服務(wù)器趴拧,僅在本地保存溅漾。

2、存儲大小限制也不同著榴,cookie數(shù)據(jù)不能超過4K添履,同時(shí)因?yàn)槊看蝖ttp請求都會(huì)攜帶cookie、所以cookie 只適合保存很小的數(shù)據(jù)脑又。sessionStorage和localStorage雖然也有存儲大小的限制暮胧,但比 cookie大得多锐借,可以達(dá)到5M或更大

3、數(shù)據(jù)有效期不同往衷,sessionStorage僅僅在當(dāng)前瀏覽器窗口關(guān)閉之前有效钞翔;localStorage始終有效,窗口或 者瀏覽器關(guān)閉之后也一直保存席舍,因此作用持久數(shù)據(jù)布轿;cookie,只在設(shè)置cookie過期時(shí)間之前有效来颤,即使窗口關(guān)閉或者瀏覽器關(guān)閉汰扭。

Ajax 是什么,ajax請求方式有幾種

是異步JavaScript和XML技術(shù)福铅, 可以在不必刷新頁面的情況下發(fā)送以及接收各種格式的信息萝毛;一種創(chuàng)建交互 式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)

跨域

1、jsonp跨域(優(yōu)點(diǎn):簡單方便,缺點(diǎn):只能使用get請求,不支持post請求)11

2滑黔、nginx的反向代理(少用)? apach? tomact?

3笆包、window.name(少用)

4、axios反向代理,

5拷沸、cors(跨域資源共享)修改服務(wù)器端修改包的頭部信息,

6色查、iframe跨子域(不常用)

VUE項(xiàng)目中怎么跨域

使用http-proxy-middleware 代理解決(項(xiàng)目使用vue-cli腳手架搭建)

例如請求的url:“http://aa.com/demo.json“

1薯演、打開config/index.js,在proxyTable中添寫如下代碼:

proxyTable: {

'/api': {//使用"/api"來代替"http://aa.com"

target:'http://aa.com',//源地址

changeOrigin:true,//改變源

secure:false// 是否使用https

pathRewrite: {

'^/api':'/api'//路徑重寫

? ?? }

? }

}

2撞芍、使用axios請求數(shù)據(jù)時(shí)直接使用“/api”

getData() {

axios.get('/api/demo.json',function(res) {

console.log(res)

})

以上配置只是在開發(fā)環(huán)境(dev)中解決跨域。要解決生產(chǎn)環(huán)境的跨域問題,則在config/dev.env.js和config/prod.env.js里也就是開發(fā)/生產(chǎn)環(huán)境下分別配置一下請求的地址API_HOST跨扮,開發(fā)環(huán)境中我們用上面配置的代理地址api序无,生產(chǎn)環(huán)境下用正常的接口地址

module.exports=merge(prodEnv, {

? ? NODE_ENV:'"development"',

? ? API_HOST:"/api/"

})

'use strict'

module.exports={

? ? NODE_ENV:'"production"',

? ? API_HOST:"http://aa.com"

}

前后端數(shù)據(jù)交互安全

加密:

hash加密:md5? sha256

對稱加密:? AES ,DES

非對稱加密:生成一對鑰匙衡创,公鑰帝嗡,私鑰。 公鑰是由私鑰生成的

無限上拉加載

下拉刷新

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末璃氢,一起剝皮案震驚了整個(gè)濱河市哟玷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌一也,老刑警劉巖巢寡,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異椰苟,居然都是意外死亡抑月,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門舆蝴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谦絮,“玉大人题诵,你說我怎么就攤上這事〔阒澹” “怎么了性锭?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奶甘。 經(jīng)常有香客問我篷店,道長,這世上最難降的妖魔是什么臭家? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任疲陕,我火速辦了婚禮,結(jié)果婚禮上钉赁,老公的妹妹穿的比我還像新娘蹄殃。我一直安慰自己,他們只是感情好你踩,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布诅岩。 她就那樣靜靜地躺著,像睡著了一般带膜。 火紅的嫁衣襯著肌膚如雪吩谦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天膝藕,我揣著相機(jī)與錄音式廷,去河邊找鬼。 笑死芭挽,一個(gè)胖子當(dāng)著我的面吹牛滑废,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播袜爪,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蠕趁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辛馆?” 一聲冷哼從身側(cè)響起俺陋,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昙篙,沒想到半個(gè)月后腊状,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瓢对,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年寿酌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硕蛹。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡醇疼,死狀恐怖硕并,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情秧荆,我是刑警寧澤倔毙,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站乙濒,受9級特大地震影響陕赃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜颁股,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一么库、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧甘有,春花似錦诉儒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至滤愕,卻和暖如春温算,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背间影。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工注竿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宇智。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓蔓搞,卻偏偏與公主長得像胰丁,于是被迫代替她去往敵國和親随橘。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容