本物のリクエストとレスポンスを読み、200、404、500が実際に何を意味するのかを学びましょう。
このレッスンを Kodokon で開くHTTP(HyperText Transfer Protocol)は、ブラウザとサーバーがお互いに話すときの言葉です。よい知らせがあります。これは意味不明なバイナリではなく、読めるテキストです。リクエストは数行に収まります。動詞、アドレス、それに続いて文脈を補うヘッダー(どの言語を好むか、どのブラウザを使っているか)です。レスポンスも同じ形をしています。数字のコード、ヘッダー、空行、そして中身です。
curl -i https://example.com
HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 1256
cache-control: max-age=86400
<!doctype html>
<html>
...リクエストの先頭に置かれる動詞をメソッドと呼び、これがあなたの意図を宣言します。GET は単にリソースを読みたいという要求です。ページを開くたびにブラウザがしているのがこれです。POST はサーバーにデータを送ります。会員登録フォームを送信するときが典型例です。PUT は既存の項目を更新し、DELETE はその削除を求めます。まずは最初の2つを覚えましょう。通信の圧倒的多数がこの2つです。
curl -X POST -d "name=Sarah&age=30" https://httpbin.org/postすべてのレスポンスは3桁のステータスコードから始まります。最初の1桁を見るだけで状況がわかります。2xxは成功を意味し、200 は「求められたものはこれです」ということです。3xxはリダイレクトで、301 は「このページは引っ越しました、あちらへどうぞ」という意味です。4xxはクライアント側の誤りを示します。404(リソースが見つからない)、403(アクセス禁止)、401(ログインが必要)です。5xxはサーバー側の不具合を示し、500 が典型的な内部エラーです。
curl -I https://example.com/this-page-does-not-exist
HTTP/2 404
content-type: text/html; charset=UTF-8