iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 16
0
自我挑戰組

我的月薪嬌妻:HTTP系列 第 16

Day16-契約、地址和樓層-CORS-1

暫時想不到如何結合月薪嬌妻的劇情,待補


基於安全上的考量,針對跨domain的資源存取,HTTP採取同源政策(same-origin policy)以限制惡意資源的影響範圍。

跨domain的判斷依據為URL

URL的組成元素為:[契約]://[地址]:[樓層]/[物品的實際位置或是邏輯上的呈現方式]?[找物品的條件]#[物品上明顯的標記]

  • 契約就是協定,較常見的契約為httphttps
  • 地址為店家所在位置
  • 同一個位置若為大樓則不同的樓層提供不同的服務,例如:1F為全聯,2F是健身房...等等
  • 實際位置代表真的在這個地方會有該物品存在;邏輯上的呈現方式代表這是取得物品的線索,會有相對應的服務員幫助你取得該物品。
  • 找物品的條件是要給店家更詳細的線索,例如:物品的長寬、顏色、形狀...等等,使用key/value pairs形式的方式並用&串接,height=20&width=30&color=red
  • 物品上明顯的標記是協助你盡快地關注到重點地方。

舉個例子來說,想要找第8屆鐵人賽最新文章中的熱門文章第2頁

http://ithelp.ithome.com.tw/ironman?tab=hot&page=2

亦即所使用的契約為http,所在位置ithelp.ithome.com.tw,邏輯上的呈現方式ironman,更詳細的線索為tab=hot&page=2

本次請求的Request&Response

GET /ironman?tab=hot&page=2 HTTP/1.1
Host: ithelp.ithome.com.tw
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4,pt;q=0.2
Cookie: (略)
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Fri, 16 Dec 2016 13:28:59 GMT
Server: nginx/1.4.6 (Ubuntu)
Set-Cookie: (略)
Set-Cookie:(略)
Content-Length: 7663
Connection: keep-alive

上一篇
Day15-她是以怎樣的心情為我做這些飯菜的呢-Range Request
下一篇
Day17-契約、地址和樓層-CORS-2
系列文
我的月薪嬌妻:HTTP30

尚未有邦友留言

立即登入留言