国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

HTTP基本知識(shí)、跨域和調(diào)試技巧

開(kāi)發(fā) 前端
其實(shí)很多面試問(wèn)HTTP的3次握手,4次揮手,我覺(jué)得價(jià)值不大,可以幫助你理解HTTP的原理,死背硬記的對(duì)于你開(kāi)發(fā)沒(méi)有作用,而是去理解它就行。

 [[262584]]

HTTP基礎(chǔ)

其實(shí)很多面試問(wèn)HTTP的3次握手,4次揮手,我覺(jué)得價(jià)值不大,可以幫助你理解HTTP的原理,死背硬記的對(duì)于你開(kāi)發(fā)沒(méi)有作用,而是去理解它就行。

前端只關(guān)心URL、headers和data,接下來(lái)也圍繞著它們展開(kāi)。

了解HTTP請(qǐng)求可以看看:https://developer.mozilla.org...

1.了解URL

URL比較簡(jiǎn)單,就簡(jiǎn)單介紹一下,將URL分為主要的3部分:

 1.  router,路由。路由地址可不能錯(cuò),這就跟收件地址一樣,填錯(cuò)收貨的就不是既定的那個(gè)人了。

 2.   search,查詢(xún)字符串,就是?后面的字符串,以鍵值對(duì)的形式通過(guò)“&”連接,例如:“?key1=value1&key2=value2”。查詢(xún)字符串就是發(fā)送到后臺(tái)的數(shù)據(jù),跟普通的post請(qǐng)求相比,get請(qǐng)求以明文的形式存儲(chǔ)在訪問(wèn)歷史,瀏覽器和路由器都很容易查得到,容易泄露,所以不建議用get請(qǐng)求;其次一般瀏覽器都有限制URL的長(zhǎng)度,所以不適合發(fā)送大數(shù)據(jù)量的數(shù)據(jù)。

 3.   hash,哈希值或者稱(chēng)為錨,是#后面的字符串,一般作為單頁(yè)應(yīng)用的路由地址,或者文檔的錨。

2.前端常用的headers

2.1.Content-Type(重要)

告訴客戶(hù)端,用什么形式前端的數(shù)據(jù)發(fā)送到后臺(tái):application/x-www-form-urlencoded、multipart/form-data、text/plain等。

2.2 application/x-www-form-urlencoded

最常見(jiàn)的方式以鍵值對(duì)的字符串傳輸(類(lèi)似URL的search),但不能傳輸文件,幾乎所有的ajax框架都是默認(rèn)以此種方式發(fā)送。

發(fā)送到后臺(tái)的數(shù)據(jù)見(jiàn)下圖:

2.3 multipart/form-data

這種方式會(huì)以鍵值對(duì)的形式通過(guò)分隔符鏈接,以字符串給后臺(tái),可以傳輸文件,也可以傳輸普通數(shù)據(jù)。

常用場(chǎng)景: 

  1. // 源生的form提交可設(shè)置enctype="multipart/form-data",一般表單中有文件會(huì)自動(dòng)設(shè)為該值  
  2. <form action="post" enctype="multipart/form-data"></form>  
  3. // ajax請(qǐng)求,通過(guò)formdata對(duì)象來(lái)達(dá)成此目的  
  4. const formdata = new new FormData();  
  5. formdata.append("key","value")  
  6. $.ajax({  
  7. ...  
  8. data: formdata,  
  9. processData: false,    // 取消對(duì)數(shù)據(jù)的預(yù)處理,因?yàn)閒ormdata不需要預(yù)處理  
  10. headers: {  
  11.    "Content-Type": undefined    // 客戶(hù)端會(huì)自動(dòng)給它設(shè)置正確的值,不要設(shè)為multipart/form-data,這樣設(shè)的后果會(huì)導(dǎo)致分隔符不正確  
  12. },  
  13. ...  
  14. }) 

如果在抓包確認(rèn)劃線的一致的話就是正確發(fā)送過(guò)去了。

2.4text/plain

這個(gè)很少會(huì)用到了,普通文本,可以是任意數(shù)據(jù),除了文件。

2.5binary

二進(jìn)制流,僅限一個(gè)文件。

3 Data-Type

告訴后臺(tái)你希望返回什么類(lèi)型的數(shù)據(jù),如xml,html,script,json,jsonp,text等,或者你跟后臺(tái)約定的也可。但是實(shí)際返回的并非跟預(yù)期一致,還是由后臺(tái)決定的。

4 自定義header

如果跟后臺(tái)有約定header,如token等,也可傳到后臺(tái)。 

  1. headers["token"] = "MD5KEY"; 

CORS跨域

跨域問(wèn)題的根本問(wèn)題就是同源策略,旨在防止網(wǎng)站被攻擊,這里不做贅述。

CORS是后臺(tái)的工作,但前端工程師還是要了解CORS,這樣才有后臺(tái)抬杠的資本。以下是后臺(tái)response配置CORS的headers,如果后臺(tái)不懂,請(qǐng)讓他了解了解CORS。

Access-Control-Allow-Origin

簡(jiǎn)單說(shuō),允許跨域訪問(wèn)的host,必須設(shè)置,否則不允許跨域。 

  1. // 如需允許所有資源都可以訪問(wèn)您的資源,您可以如此設(shè)置:  
  2. Access-Control-Allow-Origin: *  
  3. // 如需允許https://developer.mozilla.org訪問(wèn)您的資源,您可以設(shè)置:  
  4. Access-Control-Allow-Origin: https://developer.mozilla.org 

Access-Control-Allow-Credentials

如果想跨域傳輸cookies,需要Access-Control-Allow-Credentials與XMLHttpRequest.withCredentials 或Fetch API中的Request() 構(gòu)造器中的credentials 選項(xiàng)結(jié)合使用。Credentials必須在前后端都被配置(即the Access-Control-Allow-Credentials header 和 XHR 或Fetch request中都要配置)才能使帶credentials的CORS請(qǐng)求成功。

Access-Control-Request-Method

允許跨域的請(qǐng)求的方法。 

  1. Access-Control-Allow-Methods: POST, GET, OPTIONS 

Access-Control-Allow-Headers

response的header中Access-Control-Allow-Headers 用于 preflight request (即會(huì)在實(shí)際請(qǐng)求發(fā)送之前先發(fā)送一個(gè)option請(qǐng)求)中,列出了將會(huì)在正式請(qǐng)求的 Access-Control-Expose-Headers 字段中出現(xiàn)的首部信息。

簡(jiǎn)單首部,如 simple headers、Accept、Accept-Language、Content-Language、Content-Type (只限于解析后的值為 application/x-www-form-urlencoded、multipart/form-data 或 text/plain 三種MIME類(lèi)型(不包括參數(shù))),它們始終是被支持的,不需要在這個(gè)首部特意列出。

preflight request--options請(qǐng)求

很多人在抓包時(shí)會(huì)很郁悶怎么會(huì)無(wú)端端多出了一個(gè)OPTIONS請(qǐng)求,請(qǐng)不要奇怪,這只是CORS策略的預(yù)檢請(qǐng)求,就像你要去跟別人借個(gè)東西,要先問(wèn)問(wèn)對(duì)方肯不肯一樣。

什么情況下會(huì)發(fā)送OPTIONS請(qǐng)求?

簡(jiǎn)單的說(shuō),就是有自定義headers,Content-Type的值不屬于下列之一:application/x-www-form-urlencoded,multipart/form-data,text/plain的請(qǐng)求會(huì)觸發(fā)OPTIONS請(qǐng)求。如果產(chǎn)生OPTIONS請(qǐng)求,需要后臺(tái)去響應(yīng)它,允許它跨域。

https://www.jianshu.com/p/b55... 可以參考篇文章。

抓包和問(wèn)題分析

PS: 我主要使用Chrome的DevTools工具

確保發(fā)送的數(shù)據(jù)沒(méi)問(wèn)題

不要相信你的代碼,以抓包工具的為準(zhǔn)!!!!!要相信如果抓包的數(shù)據(jù)有問(wèn)題,那么就是你的代碼有問(wèn)題。

不要相信你的代碼,以抓包工具的為準(zhǔn)!!!!!要相信如果抓包的數(shù)據(jù)有問(wèn)題,那么就是你的代碼有問(wèn)題。

不要相信你的代碼,以抓包工具的為準(zhǔn)!!!!!要相信如果抓包的數(shù)據(jù)有問(wèn)題,那么就是你的代碼有問(wèn)題。

  1.  URL確保跟后臺(tái)約定的一致
  2.  headers要尤其關(guān)注Content-Type(請(qǐng)關(guān)注上文的Content-Type),GET請(qǐng)求沒(méi)有Content-Type.
  3.  請(qǐng)求的參數(shù)是否正確

后臺(tái)返回什么了?

如果你確認(rèn)你發(fā)送的數(shù)據(jù)沒(méi)問(wèn)題,那么該看看后臺(tái)響應(yīng)了什么,如果響應(yīng)的數(shù)據(jù)有問(wèn)題,那么是后臺(tái)的責(zé)任。

如果是跨域的要查看有沒(méi)有響應(yīng)CORS的請(qǐng)求頭。

 

 

責(zé)任編輯:龐桂玉 來(lái)源: segmentfault
相關(guān)推薦

2010-07-28 15:52:00

Flex

2011-11-23 10:35:53

2020-07-20 07:10:44

數(shù)據(jù)中心IT技術(shù)

2017-04-12 11:47:32

2009-06-26 14:42:08

2017-10-20 22:40:54

電線電纜導(dǎo)體

2018-11-27 15:51:10

MySQL數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化

2009-06-11 14:40:32

Java list

2012-06-05 00:41:07

JavaJava內(nèi)存

2009-12-22 14:43:38

Linux操作系統(tǒng)

2010-01-28 11:18:14

Android界面布局

2010-06-13 13:49:14

2017-02-20 23:05:14

JavaScript

2010-05-06 17:41:19

Unix命令

2020-07-16 15:00:56

MySQL索引數(shù)據(jù)庫(kù)

2009-08-28 16:53:05

C# for語(yǔ)句

2010-06-17 13:22:40

UML用例建模

2011-04-29 13:50:32

激光打印機(jī)

2010-04-21 18:38:36

Unix網(wǎng)絡(luò)

2012-05-08 09:10:56

WCF
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

香蕉成人久久| 亚洲激情男女视频| 成人国产精品一区二区| 国产精品伦理久久久久久| 欧美最近摘花xxxx摘花| 蜜桃精品视频| 日韩中文字幕欧美| 亚洲国产欧美在线观看| 国产精品99久久久久久人| 99久久夜色精品国产亚洲96| 欧美大秀在线观看| 果冻天美麻豆一区二区国产| 热门国产精品亚洲第一区在线| 国内精品视频在线观看| 国产一区二区精品在线| 激情另类综合| 亚洲欧美99| 中文字幕一区二区三区不卡在线| 日韩av一二三四| 欧美精选一区二区| 成人影院在线播放| 欧美视频13p| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 国产激情偷乱视频一区二区三区| 久久人人爽人人爽人人片av不| 日韩欧美另类中文字幕| 亚洲影院色在线观看免费| 天堂久久久久va久久久久| 99视频免费| av成人在线电影| 久久精品中文| 亚洲熟妇无码一区二区三区导航| 一区二区三区色| 日本一卡二卡四卡精品| 777午夜精品视频在线播放| 日韩毛片免费看| 国产精品久久亚洲7777| 国产精品女主播av| 欧美啪啪网站| 久久精品一区二区三区中文字幕 | 91.成人天堂一区| 麻豆一区在线| 亚洲精品国产系列| 亚洲高清免费视频| 欧美电影在线观看网站| 秋霞毛片久久久久久久久| 日韩成人高清在线| 欧洲精品99毛片免费高清观看| 97在线国产视频| 三上悠亚一区二区三区| 欧美在线高清视频| 国产一区二区在线视频你懂的| 亚洲成色www久久网站| 欧美亚洲国产bt| 成人一区视频| 成人午夜剧场免费观看完整版| 在线观看日韩专区| 成人高清视频在线| 福利片在线看| 欧美不卡福利| 亚洲欧美另类久久久精品2019| 欧美视频在线视频精品| 国产日韩精品一区| av资源一区| 日韩国产精品一区二区| 日韩欧中文字幕| 亚洲第一福利社区| 黄色www网站| 亚洲免费av片| 日韩黄色免费网站| 男人资源在线播放| 精品一区二区日本| 欧美日韩精品系列| 免费在线成人| 亚洲制服国产| 一区二区av| 亚洲天堂av在线免费| 丁香啪啪综合成人亚洲小说| 亚洲一区二区在线播放相泽 | 激情五月婷婷六月| 国产精品扒开腿做爽爽爽男男| 亚洲二区在线视频| 成人黄色一级视频| 99精品免费| 亚洲深夜福利在线观看| 裸体xxxx视频在线| 黄色影院一级片| 五月天婷亚洲天综合网鲁鲁鲁| 在线成人激情视频| 精品国产三级电影在线观看| av在线综合网| 小嫩嫩精品导航| 性欧美18一19内谢| 久久精品国产一区| 亚洲精品一二三| 亚洲国产一区二区精品专区| 高清电影在线免费观看| 久久手机在线视频| 97久久伊人激情网| 一本到三区不卡视频| 日韩精品一卡二卡三卡四卡无卡| 在线最新版中文在线| www黄色日本| 国产精品久久久久77777| 欧美亚洲图片小说| 国产精品自在在线| 久久99高清| 国产高清精品一区| 国产精品户外野外| 99精品视频网站| 亚洲xxxx做受欧美| 国产成人av在线| 91成人精品网站| 国内精品视频在线| 久久久久久久久久婷婷| 国产91热爆ts人妖在线| 簧片在线观看| 国产有码在线一区二区视频| 日韩亚洲欧美在线观看| 久久久影院官网| 操欧美老女人| 欧美日韩99| 亚洲欧美网站在线观看| 国产精品久久久久蜜臀 | 国产精品九九九| 97在线视频精品| 91精品国产91久久久久久| 欧美亚洲另类激情另类| 国产精品精品视频| 蜜桃导航-精品导航| 日韩一本精品| 久久久999视频| 最新日本视频| 性欧美videosex高清少妇| 青青草原成人在线视频| 欧美一区二区三区四区五区 | 久久91视频| 成人性生交大片免费看中文网站| 97国产在线播放| 国产在线高清精品| 在线日韩中文字幕| 午夜激情一区二区| 国产成人av网站| 99精品视频在线观看免费播放| 青青在线免费观看| 久久.com| www.国产精品.com| 污污视频在线| 欧美日韩卡一| 久久91麻豆精品一区| 欧美男gay| 国产综合视频| 久久午夜色播影院免费高清| 麻豆av免费在线观看| 干日本少妇首页| 国产一区二区中文字幕免费看| 日韩一二三在线视频播| 欧美丝袜丝交足nylons| 欧美国产欧美亚州国产日韩mv天天看完整| 99视频+国产日韩欧美| 久久香蕉精品香蕉| 中文字幕系列一区| 波多野结衣在线网站| 99热手机在线观看| 中文字幕乱码免费| 国产中文一区二区| 日韩av片电影专区| 日韩最新在线视频| 日韩欧美亚洲国产精品字幕久久久| 综合精品久久久| 不卡一区二区三区四区| 日韩激情在线观看| 午夜精品久久| 99热免费在线| 欧美videossex另类| 美女任你摸久久| 亚洲成人免费视频| 日韩在线激情视频| 欧美性受xxxx黑人猛交88| www.91在线| 欧美日本亚洲韩国国产| 中文字幕日韩欧美一区二区三区| 2021国产精品视频| 精品日本12videosex| 日韩毛片网站| 美女的胸无遮挡在线观看| 黄色视屏免费在线观看| 中文字幕视频免费在线观看| 一区二区三区免费观看| 日韩在线视频国产| 欧美黄色免费网址| 理论片午夜视频在线观看| 精品午夜一区二区三区在线观看| 欧美日韩性视频在线| 91gao视频| 国精一区二区三区| 国产麻豆午夜三级精品| 中文欧美日本在线资源| 国产激情在线观看视频| 国产日韩中文在线中文字幕|