Origin
åºçº¿
广æ³å¯ç¨
èª 2020å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
è¯·æ±æ 头 Origin 表示äºè¯·æ±çæ¥æºï¼åè®®ã主æºã端å£ï¼ãä¾å¦ï¼å¦æä¸ä¸ªç¨æ·ä»£çéè¦è¯·æ±ä¸ä¸ªé¡µé¢ä¸å
å«çèµæºï¼æè
æ§è¡èæ¬ä¸ç HTTP 请æ±ï¼fetchï¼ï¼é£ä¹è¯¥é¡µé¢çæ¥æºï¼originï¼å°±å¯è½è¢«å
å«å¨è¿æ¬¡è¯·æ±ä¸ã
| Header type | Request header |
|---|---|
| Forbidden request header | yes |
è¯æ³
Origin: null
Origin: <scheme>://<hostname>
Origin: <scheme>://<hostname>:<port>
æä»¤
null-
请æ±çæ¥æºæ¯âéç§ææâçï¼æè æ¯ HTML è§èå®ä¹çä¸éææ¥æºï¼å ·ä½æ åµå¨æè¿°é¨åååºï¼ã
<scheme>-
è¯·æ±æä½¿ç¨çåè®®ï¼éå¸¸æ¯ HTTP åè®®æè å®çå®å ¨çæ¬ï¼HTTPS åè®®ï¼ã
<hostname>-
æºç«çååæ IP å°åã
<port>å¯é-
æå¡å¨æ£å¨çå¬ç端å£å·ã缺ç为æå¡çé»è®¤ç«¯å£ï¼å¯¹äº HTTP 请æ±èè¨ï¼é»è®¤ç«¯å£ä¸º 80ï¼ã
æè¿°
Origin æ å¤´ä¸ Referer æ 头类似ï¼ä½åè
ä¸ä¼æ´é² URL ç path é¨åï¼èä¸å
¶å¯ä»¥ä¸º null å¼ãå
¶ç¨äºä¸ºæºç«çè¯·æ±æä¾âå®å
¨ä¸ä¸æâï¼é¤éæºç«çä¿¡æ¯æææä¸å¿
è¦çã
ä»å¹¿ä¹ä¸è®²ï¼ç¨æ·ä»£çä¼å¨ä»¥ä¸æ
åµä¸æ·»å Origin è¯·æ±æ 头ï¼
- è·¨æºè¯·æ±ã
- é¤
GETåHEAD以å¤çåæºè¯·æ±ï¼å³å®ä¼è¢«æ·»å å°åæºçPOSTãOPTIONSãPUTãPATCHåDELETE请æ±ä¸ï¼ã
é¤ä¸è¿°è§åå¤ï¼è¿æä¸äºç¹æ®æ
åµãä¾å¦ï¼å¨ no-cors 模å¼ä¸çè·¨æº GET æ HEAD 请æ±ä¸ä¼åé Origin æ 头ã
Origin æ 头å¨ä»¥ä¸æ
åµä¸ï¼ä¸å®æ´ï¼ä¼è¢«è®¾ç½®ä¸º nullï¼
- è¯·æ±æ¥æºçåè®®ä¸æ¯
httpãhttpsãftpãwsãwssægopherä¸çä»»æä¸ä¸ªï¼å¦ï¼blobãfileådataï¼ã - è·¨æºçå¾åæåªä½ï¼å
æ¬ï¼
<img>ã<video>å<audio>å ç´ ã - å±äºä»¥ä¸å ç§ææ¡£ç±»åçï¼ä½¿ç¨
createDocument()å建çãéè¿data:URL çæçææ²¡æå建è çæµè§ä¸ä¸æçã - è·¨æºéå®åã
- 没æä¸º sandbox 屿§è®¾ç½®
allow-same-originå¼ç iframeã - ååºï¼responseï¼æ¯ç½ç»é误ã
夿³¨ï¼äºè§£æ´è¯¦ç»çå
³äºå
¶å¼ä½æ¶ä¸º null çæ¸
åï¼è¯·åè§ Stack Overflowï¼When do browsers send the Origin header? When do browsers set the origin to null?ã
示ä¾
Origin: https://developer.mozilla.org
Origin: https://developer.mozilla.org:80
è§è
| è§è |
|---|
| The Web Origin Concept > # section-7 > |
| Fetch > # origin-header > |