gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

url完整結構以及同源跨域處理的介紹

本篇文章給大家帶來的內容是關于url完整結構以及同源跨域處理的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

前言:隨著工作時間的增長,前面學過的東西開始慢慢遺忘,抽空的時候就將一些資料整理整理,順一順,也當作一種溫習。
我只是前端工匠,防止自己成為【一斷網就無法工作的程序員】

url的完整結構

協議類型(protocol)

通過URL可以指定的主要有以下幾種:http、ftp、gopher、telnet、file等
URL的組成協議 1、protocol(協議):指定使用的傳輸協議,下表列出 protocol 屬性的有效方案名稱。
最常用的是HTTP協議,它也是目前WWW中應用最廣的協議。

http —— 超文本傳輸協議訪問該資源。 格式 http://
https —— 用安全套接字層傳送的超文本傳輸協議訪問該資源。 格式 https://
ftp —— 通過 FTP訪問資源。格式 FTP://
mailto —— 電子郵件地址 通過 SMTP 訪問。 格式 mailto:
ldap —— 輕型目錄訪問協議搜索
file —— 資源是本地計算機上的文件。格式file://
news —— Usenet新聞組
gopher —— Gopher協議
telnet —— Telnet協議

主機名(hostname)
是指存放資源的服務器的域名系統 (DNS) 主機名或 IP 地址。
有時,在主機名前也可以包含連接到服務器所需的用戶名和密碼(格式:username:password)。
端口號(port) 整數,可選,省略時使用方案的默認端口,各種傳輸協議都有默認的端口號,
如http的默認端口為80,https的默認端口為443
路徑及文件名(path) 由零或多個“/”符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址
參數(parameters) 傳遞參數,可有多個參數,用“&”符號隔開,每個參數的名和值用“=”符號隔開
hash值 #是用來指導瀏覽器動作的,對服務器端完全無用。所以,HTTP請求中不包括#。
這些字符都不會被發送到服務器端。
改變#不觸發網頁重載
改變#會改變瀏覽器的訪問歷史

默認情況下,Google的網絡蜘蛛忽視URL的#部分。
但是,Google還規定,如果你希望Ajax生成的內容被瀏覽引擎讀取,
那么URL中可以使用"#!",Google會自動將其后面的內容轉成查詢字符串_escaped_fragment_的值

同源策略

協議相同域名相同端口相同

如果非同源,共有三種行為收到限制

(1) Cookie、LocalStorage 和 IndexDB 無法讀取。 (2) DOM 無法獲得。 (3) AJAX 請求不能發送。

Cookie

Cookie 是服務器寫入瀏覽器的一小段信息,只有同源的網頁才能共享。

cookie的組成部分

    Set-Cookie: NAME=VALUE;Expires=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE      NAME=VALUE     NAME是該Cookie的名稱,VALUE是該Cookie的值。     在字符串“NAME=VALUE”中,不含分號、逗號和空格等字符。          Expires=DATE:Expires變量是一個只寫變量,它確定了Cookie有效終止日期。     該屬性值DATE必須以特定的格式來書寫:星期幾,DD-MM-YY HH:MM:SS GMT,     GMT表示這是格林尼治時間。     反之,不以這樣的格式來書寫,系統將無法識別。     該變量可省,如果缺省時,則Cookie的屬性值不會保存在用戶的硬盤中,     而僅僅保存在內存當中,Cookie文件將隨著瀏覽器的關閉而自動消失。          Domain=DOMAIN-NAME:Domain該變量是一個只寫變量,     它確定了哪些Internet域中的Web服務器可讀取瀏覽器所存取的Cookie,     即只有來自這個域的頁面才可以使用Cookie中的信息。     這項設置是可選的,如果缺省時,設置Cookie的屬性值為該Web服務器的域名。          Path=PATH:Path屬性定義了Web服務器上哪些路徑下的頁面可獲取服務器設置的Cookie。     一般如果用戶輸入的URL中的路徑部分從第一個字符開始包含Path屬性所定義的字符串,     瀏覽器就認為通過檢查。如果Path屬性的值為“/”,     則Web服務器上所有的WWW資源均可讀取該Cookie。          Secure:在Cookie中標記該變量,     表明只有當瀏覽器和Web Server之間的通信協議為加密認證協議時,     瀏覽器才向服務器提交相應的Cookie。當前這種協議只有一種,即為HTTPS。

cookie 在 Request Headers 中的傳輸格式

    Cookie: KEY=VALUE; KEY=VALUE; KEY=VALUE     是沒有 域 和 過期時間 的

跨域處理

兩個網頁一級域名相同,只是二級域名不同,瀏覽器允許通過設置document.domain共享 Cookie。

document.domain = 'example.com';

如果兩個網頁不同源,就無法拿到對方的DOM。

典型的例子是iframe窗口和window.open方法打開的窗口,它們與父窗口無法通信。

AJAX

除了架設服務器代理(瀏覽器請求同源服務器,再由后者請求外部服務),

vue項目中 開發環境的跨域處理

proxyTable

dev: {           // Paths     assetsSubDirectory: 'static',     assetsPublicPath: './',     proxyTable: {         '/api': {             target: 'http://temp.com',// 請換成你需要跨域請求的地址             changeOrigin: true,             pathRewrite: {               '^/api': ''             }         }     } }

proxyTable中的pathRewrite的/api理解成用‘/api’代替target里面的地址,
后面組件中我們掉接口時直接用api代替

有三種方法規避這個限制

JSONP WebSocket CORS
    JSONP     是服務器與客戶端跨源通信的常用方法。     最大特點就是簡單適用,老式瀏覽器全部支持,服務器改造非常小。     它的基本思想是,網頁通過添加一個<script>元素,向服務器請求JSON數據,     這種做法不受同源政策限制;服務器收到請求后,將數據放在一個指定名字的回調函數里傳回來。          WebSocket     WebSocket是一種通信協議,使用ws://(非加密)和wss://(加密)作為協議前綴。     該協議不實行同源政策,只要服務器支持,就可以通過它進行跨源通信。      CORS     CORS是跨源資源分享(Cross-Origin Resource Sharing)的縮寫。     它是W3C標準,是跨源AJAX請求的根本解決方法。     相比JSONP只能發GET請求,CORS允許任何類型的請求。

CORS詳解

CORS需要瀏覽器和服務器同時支持。目前,所有瀏覽器都支持該功能,IE瀏覽器不能低于IE10。

整個CORS通信過程,都是瀏覽器自動完成,不需要用戶參與。對于開發者來說,CORS通信與同源的AJAX通信沒有差別,代碼完全一樣。瀏覽器一旦發現AJAX請求跨源,就會自動添加一些附加的頭信息,有時還會多出一次附加的請求,但用戶不會有感覺。

因此,實現CORS通信的關鍵是服務器。只要服務器實現了CORS接口,就可以跨源通信。

兩種請求

瀏覽器將CORS請求分成兩類:簡單請求(simple request)和非簡單請求(not-so-simple request)。

只要同時滿足以下兩大條件,就屬于簡單請求

(1)請求方法是以下三種方法之一:     HEAD     GET     POST      (2)HTTP的頭信息不超出以下幾種字段:     Accept     Accept-Language     Content-Language     Last-Event-ID     Content-Type:只限于三個值application/x-www-form-urlencoded、multipart/form-data、text/plain      凡是不同時滿足上面兩個條件,就屬于非簡單請求。

簡單請求

對于簡單請求,瀏覽器直接發出CORS請求。具體來說,就是在頭信息之中,增加一個Origin字段。

下面是一個例子,瀏覽器發現這次跨源AJAX請求是簡單請求,就自動在頭信息之中,添加一個Origin字段。

         GET /cors HTTP/1.1     Origin: http://api.bob.com     Host: api.alice.com     Accept-Language: en-US     Connection: keep-alive     User-Agent: Mozilla/5.0...

上面的頭信息中,Origin字段用來說明,本次請求來自哪個源(協議 + 域名 + 端口)。服務器根據這個值,決定是否同意這次請求。

如果Origin指定的源,不在許可范圍內,服務器會返回一個正常的HTTP回應。瀏覽器發現,這個回應的頭信息沒有包含Access-Control-Allow-Origin字段(詳見下文),就知道出錯了,從而拋出一個錯誤,被XMLHttpRequest的onerror回調函數捕獲。注意,這種錯誤無法通過狀態碼識別,因為HTTP回應的狀態碼有可能是200。

如果Origin指定的域名在許可范圍內,服務器返回的響應,會多出幾個頭信息字段。

              Access-Control-Allow-Origin: http://api.bob.com     Access-Control-Allow-Credentials: true     Access-Control-Expose-Headers: FooBar     Content-Type: text/html; charset=utf-8

上面的頭信息之中,有三個與CORS請求相關的字段,都以Access-Control-開頭。

  1. Access-Control-Allow-Origin

    該字段是必須的。它的值要么是請求時Origin字段的值,要么是一個*,表示接受任意域名的請求

  2. Access-Control-Allow-Credentials

    該字段可選。它的值是一個布爾值,表示是否允許發送Cookie。默認情況下,Cookie不包括在CORS請求之中。設為true,即表示服務器明確許可,Cookie可以包含在請求中,一起發給服務器。這個值也只能設為true,如果服務器不要瀏覽器發送Cookie,刪除該字段即可。

  3. Access-Control-Expose-Headers

    該字段可選。CORS請求時,XMLHttpRequest對象的getResponseHeader()方法只能拿到6個基本字段:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。如果想拿到其他字段,就必須在Access-Control-Expose-Headers里面指定。上面的例子指定,getResponseHeader('FooBar')可以返回FooBar字段的值。

非簡單請求

非簡單請求是那種對服務器有特殊要求的請求,比如請求方法是PUT或DELETE,或者Content-Type字段的類型是application/json。

非簡單請求的CORS請求,會在正式通信之前,增加一次HTTP查詢請求,稱為"預檢"請求(preflight)。

瀏覽器先詢問服務器,當前網頁所在的域名是否在服務器的許可名單之中,以及可以使用哪些HTTP動詞和頭信息字段。只有得到肯定答復,瀏覽器才會發出正式的XMLHttpRequest請求,否則就報錯。

"預檢"請求用的請求方法是OPTIONS,表示這個請求是用來詢問的。頭信息里面,關鍵字段是Origin,表示請求來自哪個源。

除了Origin字段,"預檢"請求的頭信息包括兩個特殊字段。

Access-Control-Request-Method

該字段是必須的,用來列出瀏覽器的CORS請求會用到哪些HTTP方法,上例是PUT。

Access-Control-Request-Headers

該字段是一個逗號分隔的字符串,指定瀏覽器CORS請求會額外發送的頭信息字段,上例是X-Custom-Header。

OPTIONS /cors HTTP/1.1 Origin: http://api.bob.com Access-Control-Request-Method: PUT Access-Control-Request-Headers: X-Custom-Header Host: api.alice.com Accept-Language: en-US Connection: keep-alive User-Agent: Mozilla/5.0...

預檢請求的回應

服務器收到"預檢"請求以后,檢查了Origin、Access-Control-Request-Method和Access-Control-Request-Headers字段以后,確認允許跨源請求,就可以做出回應。

    HTTP/1.1 200 OK     Date: Mon, 01 Dec 2008 01:15:39 GMT     Server: Apache/2.0.61 (Unix)     Access-Control-Allow-Origin: http://api.bob.com     Access-Control-Allow-Methods: GET, POST, PUT     Access-Control-Allow-Headers: X-Custom-Header     Content-Type: text/html; charset=utf-8     Content-Encoding: gzip     Content-Length: 0     Keep-Alive: timeout=2, max=100     Connection: Keep-Alive     Content-Type: text/plain           上面的HTTP回應中,關鍵的是Access-Control-Allow-Origin字段, 表示http://api.bob.com可以請求數據。該字段也可以設為星號,表示同意任意跨源請求。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
日韩欧美中文视频| 最新免费av网址| av免费网站观看| 中文字幕第36页| 国产乱码一区二区三区四区| 懂色av一区二区三区四区五区| 蜜臀av.com| 91专区在线观看| 五月激情五月婷婷| 国内精品国产三级国产99| a在线视频观看| 黄色片视频在线| 喜爱夜蒲2在线| 欧美污视频网站| 天天操夜夜操很很操| 黄色国产一级视频| www.99r| 精品国偷自产一区二区三区| 日韩精品无码一区二区三区免费| 性欧美1819| 热99这里只有精品| 国产福利在线免费| 欧美精品久久久久久久久久久| 亚洲精品高清无码视频| 亚洲五码在线观看视频| 97视频在线免费播放| 26uuu成人| 免费在线激情视频| 国产日韩第一页| 精品久久久久久久无码| 超碰人人爱人人| 高清av免费看| 青草青青在线视频 | 99久久久无码国产精品性色戒| 少妇人妻无码专区视频| 久久久久久综合网| 免费国产成人av| 久草免费福利在线| 亚洲日本黄色片| 精品99在线视频| 黄色一级片在线看| 国产日产欧美一区二区| 爱情岛论坛vip永久入口| 无码 制服 丝袜 国产 另类| 亚洲一级片av| 超碰av在线免费观看| 伊人成色综合网| www插插插无码免费视频网站| 青青草久久伊人| 欧美日韩怡红院| 欧美成人精品欧美一级乱| 992tv快乐视频| 经典三级在线视频| 亚洲欧美手机在线| 日韩精品视频一二三| 波多野结衣天堂| 苍井空浴缸大战猛男120分钟| 日韩小视频网站| 免费视频爱爱太爽了| 欧美美女黄色网| 日韩a级黄色片| 欧美一级中文字幕| 男人的天堂视频在线| 黄色网址在线免费看| 熟女熟妇伦久久影院毛片一区二区| 中文字幕66页| 中文字幕第66页| 精品久久免费观看| 蜜臀av.com| 激情五月婷婷六月| 97在线国产视频| 久久精品视频16| 超碰97人人射妻| 午夜dv内射一区二区| 在线黄色免费观看| 国产精品自拍视频在线| 日韩在线一区视频| 国产经典久久久| 91精品国产91久久久久麻豆 主演| 免费国产黄色网址| 国产天堂在线播放| 国产精品嫩草影院8vv8| 青少年xxxxx性开放hg| 无码人妻精品一区二区三区99v| 日韩a级黄色片| 国产极品尤物在线| 九九视频精品在线观看| 玖玖爱视频在线| 屁屁影院ccyy国产第一页| 波多野结衣乳巨码无在线| 日韩免费高清在线| 亚洲va综合va国产va中文| 中文字幕综合在线观看| 国产精品无码免费专区午夜| www.中文字幕在线| 蜜臀一区二区三区精品免费视频| 日韩中文在线字幕| www黄色日本| 免费网站在线观看黄| 黄色激情在线视频| 别急慢慢来1978如如2| 五月天男人天堂| 免费成人在线视频网站| 亚洲综合av在线播放| 久久久99精品视频| 午夜免费精品视频| 男女裸体影院高潮| 久久久精品麻豆| 中文字幕日韩精品无码内射| 韩国日本美国免费毛片| 8x8ⅹ国产精品一区二区二区| 夫妻免费无码v看片| 亚洲色图偷拍视频| 九九九九免费视频| 色婷婷综合在线观看| 久久久免费视频网站| 国产精品88久久久久久妇女| 激情六月丁香婷婷| 300部国产真实乱| 亚洲成色www.777999| 久久久性生活视频| 黄色片免费网址| 欧美 国产 小说 另类| 热久久最新地址| 亚洲综合av在线播放| 久久美女福利视频| 日韩一级片免费视频| 国内精品国产三级国产aⅴ久| 欧美三级午夜理伦三级| 久久99中文字幕| 欧洲精品视频在线| 免费看涩涩视频| 黄在线观看网站| 欧美无砖专区免费| 日韩视频一二三| 特黄视频免费观看| 欧美伦理片在线观看| 欧美 丝袜 自拍 制服 另类| 青青视频免费在线| www.午夜色| 免费不卡av网站| 激情久久综合网| 三上悠亚在线一区| 三上悠亚av一区二区三区| 成人久久久久久久久| 黄色网页免费在线观看| 国产精品久久中文字幕| 亚洲理论电影在线观看| 嫩草影院中文字幕| 欧美乱做爰xxxⅹ久久久| 四虎4hu永久免费入口| 强开小嫩苞一区二区三区网站| www激情五月| 一级片黄色免费| 一级一片免费播放| 操bbb操bbb| 成人一级生活片| 成人午夜精品久久久久久久蜜臀| 91黄色在线看| 欧美 丝袜 自拍 制服 另类| 黄页免费在线观看视频| 国产精品后入内射日本在线观看| 俄罗斯av网站| 日av中文字幕| 欧美三级午夜理伦三级富婆| 女同激情久久av久久| 日韩高清在线一区二区| 女人床在线观看| 99在线精品免费视频| 欧美视频第三页| 天天爽人人爽夜夜爽| 一级淫片在线观看| 黄色特一级视频| 欧美国产亚洲一区| 亚洲福利精品视频| www.日本久久| 人人妻人人澡人人爽欧美一区双| 欧美 国产 综合| 中国黄色片免费看| 亚洲天堂av一区二区三区| 91视频成人免费| 92看片淫黄大片一级| 亚洲第一天堂久久| 亚洲精品蜜桃久久久久久| 37pao成人国产永久免费视频| 成人综合久久网| www.国产在线视频| 91国产精品视频在线观看| avove在线观看| 国产乱子夫妻xx黑人xyx真爽| 亚洲欧美偷拍另类| 久青草视频在线播放| 日本久久久久久久久久久久| 天天色天天干天天色| 又粗又黑又大的吊av| 在线观看免费视频高清游戏推荐| 国产91视频一区| 不卡的av中文字幕| 免费不卡av在线| 在线观看视频在线观看|