Web技術基礎

https://app.example.com 網頁的JavaScript,要使用fetch對 https://api.example.net/orders 送出附有Content-Type: application/json本文的POST請求。此時跨來源資源共用(CORS)的行為,下列何者正確?

  1. ACORS在瀏覽器以外也有作用,因此沒有伺服器的許可時,從命令列工具送出的POST也會在網路途中被擋下
  2. B瀏覽器先以OPTIONS方法送出事前確認(預檢),只有在伺服器以標頭回傳許可時,才送出原本的POST
  3. C對不同來源的請求一律不經確認就送出,即使伺服器在回應中什麼都不附加,網頁的JavaScript也能讀取回應
查看答案與解析

正確答案:B. 瀏覽器先以OPTIONS方法送出事前確認(預檢),只有在伺服器以標頭回傳許可時,才送出原本的POST

CORS是在伺服器許可的範圍內,允許受同源政策限制的、對其他來源的請求及讀取其回應的機制。Content-Type為application/json的POST,是單純的表單送出無法產生的請求,因此瀏覽器會先以OPTIONS告知要使用的方法與標頭,確認是否許可。若伺服器的回應中沒有Access-Control-Allow-Origin等許可,瀏覽器就不會送出原本的請求。CORS是瀏覽器遵守的規則,因此伺服器必須另外以身分驗證與權限確認保護自己。

  • A. CORS是瀏覽器進行的確認,不會阻止瀏覽器以外之工具送出的請求。伺服器端另外需要身分驗證與權限確認。
  • B. 正確。附有application/json本文的POST,會先以預檢確認許可後再送出。
  • C. 只有在伺服器以Access-Control-Allow-Origin等方式許可時,指令碼才能讀取其他來源的回應。
練習這個領域 前往領域頁面

Web技術基礎的其他題目

  1. 關於Service Worker的說明,下列何者正確?
  2. 在也支援智慧型手機的響應式設計網頁中,於<head>寫入 <meta name="viewport" content="width=device-width, initial-scale=1"> 的主要目的為下列何者?
  3. 在內容因使用者而異的「我的頁面」回應中,加上Cache-Control: private, max-age=60。這項設定的效果,下列何者正確?
  4. Web伺服器以gzip或Brotli壓縮回應後傳送時,壓縮所減少的傳輸量一般最小的是下列何者?
  5. 把1.5 MB的文字資料以gzip壓縮為3分之1的大小後傳送。頻寬為10 Mbps、RTT為100 ms,在開始傳送資料之前,TCP連線、TLS交握、HTTP請求合計需要3個往返。假設1 MB = 10^6 位元組,並忽略壓縮與解壓縮的時間、標頭,以及TCP壅塞控制造成的等待。到接收完資料為止的時間,最接近下列何者?