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技術の基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

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の輻輳制御による待ちは無視する。データを受け取り終えるまでの時間に最も近いものはどれか。