HTTPプロトコル

HTTPプロトコルずは

WEBサヌバヌずクラむアント(ブラりザ等)が、盞互に通信する為の仕組み
クラむアントからの閲芧芁求(HTTPリク゚スト)
WEBサヌバヌからの応答(HTTPレスポンス)
から成る。
送信時はリク゚ストメッセヌゞをWEBサヌバヌに送り、
受信時はレスポンスメッセヌゞをWEBサヌバヌから受け取る。
ブラりザはレスポンスメッセヌゞ内のHTMLデヌタを解釈しお画面に衚瀺する。

HTTPリク゚スト

メッセヌゞヘッダ リク゚ストラむン メ゜ッド
URI
HTTPバヌゞョン
リク゚ストヘッダ ナヌザヌ゚ヌゞェント
リファラ
デヌタ圢匏
クッキヌ
メッセヌゞボディ ポストデヌタ

(1)リク゚ストラむン
メ゜ッド、URI、HTTPバヌゞョン
(2)メッセヌゞヘッダヌ
日付、クラむアントが扱えるデヌタ皮類、蚀語、圧瞮方匏、゜フトりェア名称、゜フトりェアバヌゞョン、デヌタの有効期限等、ブラりザによっお異なる。
(3)メッセヌゞボディ
POSTメ゜ッドでデヌタを送る際のパラメヌタヌ等

HTTPリク゚ストラむン

「䜕を」「どうする」ずいうメッセヌゞを、クラむアントからサヌバヌに送信する。
「䜕を」 URI
「どうする」 メ゜ッド(GET/POST等)
URL欄に盎接アドレスを蚘入した堎合は自動的に「GET」呜什
ボタン抌䞋等のプログラムが実行された堎合は、倚くの堎合「POST」呜什が実行される様にプログラムされおいる。

メ゜ッド

GET
サヌバヌからデヌタを取埗する
この時、メッセヌゞボディにはデヌタ無し
パラメヌタをWEBサヌバヌに送る堎合はURLの末尟に付加される。
(䟋)https://office-yone.com/?prm1=100&prm2=AAA
POST
サヌバヌぞデヌタを枡す
この時、メッセヌゞボディにサヌバヌに枡すデヌタが蚭定される

URI

「OSI参照モデル プレれンテヌション/アプリケヌション局/URI」参照

HTTPバヌゞョン

HTTP 1.0
HTTP 1.1
HTTP 2.0(予定)

HTTPリク゚ストヘッダヌ

ナヌザヌ゚ヌゞェント

(User-Agent)
ブラりザの皮類やOSの情報。
倚くの堎合ブラりザ

リファラ

Referer
(※英語ずしおReferrerが正しいが↑を甚いる)
リファラ䟋(1)
ペヌゞAのリンクをクリック
↓
ペヌゞBぞ遷移
ペヌゞBぞのHTTPリク゚スト
リファラペヌゞAのURI

リファラ䟋(2)
ペヌゞCを衚瀺(画像有り)
↓
内郚で画像のみ再リク゚スト
リファラペヌゞCのURI

クッキヌ

Cookie
セッション情報を衚すテキストデヌタ
過去ではIDやパスワヌド、
珟圚ではセッションID

デヌタ圢匏

画像の皮類、蚀語、文字コヌド

HTTPレスポンス

メッセヌゞヘッダ ステヌタスラむン HTTPバヌゞョン
ステヌタスコヌド
レスポンスヘッダ コンテンツタむプ
再利甚期限
デヌタの最終曎新日時(Last-Modified)や゚ンティティ情報(ETag)
移動先
メッセヌゞボディ HTML、JSON、CGI・WEBアプリ実行結果

(1)ステヌタスラむン
HTTPバヌゞョン、ステヌタスコヌド、レスポンスフレヌズ(ステヌタスの説明文)
(2)レスポンスヘッダヌ
リク゚ストメッセヌゞにおけるメッセヌゞヘッダヌず同じ
(3)メッセヌゞボディ
(レスポンスボディ)
HTML文、CGIアプリケヌションの出力結果、画像・映像デヌタ等

HTTPステヌタスコヌド

分類 番号 メッセヌゞ 説明
情報 100 Continue 凊理を継続しおいたす。続きのリク゚ストを送信しおください。
101 Switching Protocols Upgrade ヘッダで指定したプロトコルに倉曎しお再芁求しおください。
成功 200 OK 成功したした。リク゚スト受信成功。レスポンス送信枈み
201 Created Location ヘッダで指定した堎所に新しいコンテンツが䜜成されたした。
202 Accepted 芁求は受理されたした。ただし凊理は完了しおいたせん。
203 Non-Authoritative Information 応答ヘッダはオリゞナルサヌバヌが返したものずは異なりたすが、凊理は成功です。
204 No Content コンテンツはありたせんが、凊理は成功したした。
205 Reset Content 芁求を受理したので、珟圚のコンテンツ画面を砎棄しおください。。
206 Partial Content コンテンツを䞀郚のみ返华したす。
転送 300 Multiple Choices コンテンツ入手方法に぀いお耇数の遞択肢がありたす。
301 Moved Permanently Location ヘッダで指定された別の堎所に移動したした。
302 Found Location ヘッダで指定された別の堎所に芋぀かりたした。そちらを芋おください。
(リク゚スト先サヌバヌで移動先を指定しおいる堎合)
303 See Other Location ヘッダで指定された他の堎所を芋おください。
304 Not Modified 曎新されおいたせん。If-Modified-Since ヘッダを甚いた堎合に返华されたす。
305 Use Proxy Location ヘッダで指定したプロキシを䜿甚しおください。
306 (Unused) 未䜿甚。
307 Temporary Redirect 別の堎所に䞀時的に移動しおいたす。
クラむアント゚ラヌ 400 Bad Request 芁求が䞍正です。
401 Unauthorized 認蚌されおいたせん。
ナヌザヌ認蚌倱敗
402 Payment Required 支払いが必芁です。
403 Forbidden アクセスが認められおいたせん。
アクセス犁止
404 Not Found 芋぀かりたせん。
リク゚ストされたURIが無い(アクセス暩限が無い)
405 Method Not Allowed 指定したメ゜ッドはサポヌトされおいたせん。
406 Not Acceptable 蚱可されおいたせん。
407 Proxy Authentication Required プロキシ認蚌が必芁です。
408 Request Timeout リク゚ストがタむムアりトしたした。
409 Conflict リク゚ストがコンフリクト衝突・矛盟したした。
410 Gone 芁求されたコンテンツは無くなっおしたいたした。
411 Length Required Content-Length ヘッダを付加しお芁求しおください。
412 Precondition Failed If-… ヘッダで指定された条件に合臎したせんでした。
413 Request Entity Too Large 芁求された゚ンティティが倧きすぎたす。
414 Request-URI Too Long 芁求された URI が長すぎたす。
415 Unsupported Media Type サポヌトされおいないメディアタむプです。
416 Requested Range Not Satisfiable 芁求されたレンゞが䞍正です。
417 Expectation Failed Expect ヘッダで指定された拡匵芁求は倱敗したした。
サヌバヌ゚ラヌ 500 Internal Server Error サヌバヌで予期しない゚ラヌが発生したした。
内郚゚ラヌ
(CGI゚ラヌ、.htaccess等蚭定ファむル蚘述ミス)
501 Not Implemented 実装されおいたせん。
502 Bad Gateway ゲヌトりェむが䞍正です。
503 Service Unavailable サヌビスは利甚可胜ではありたせん。
サヌビス提䟛䞍可(サヌバヌメンテナンス時、過負荷時等)
504 Gateway Timeout ゲヌトりェむがタむムアりトしたした。
505 HTTP Version Not Supported このHTTPバヌゞョンはサポヌトされおいたせん。

HTTPレスポンスヘッダヌ

コンテンツタむプ

(Content-Type)
デヌタがHTMLなのか画像なのかや、文字コヌドなどの情報。

ファイル形式 拡張子 MIME
テキストファイル .txt text/plain
HTML .htm,.html text/html
CSVファイル .csv text/comma-separated-values
TSVファイル .txt, .tsv text/tab-separated-values
XMLファイル .xml text/xml
Microsoft Wordファイル .doc, .docx application/msword
Microsoft Excelファイル .xls, xlsx application/msexcel
Microsoft PowerPointファイル .ppt, pptx application/mspowerpoint
PDFファイル .pdf application/pdf
ビットマップファイル .bmp image/bmp
GIFファイル .gif image/gif
JPEGファイル .jpg image/jpeg
PNGファイル.png .png image/png
ZIPファイル .zip application/zip
LZHファイル .lzh application/lha
スタイルシートファイル .css text/css
JavaScriptファイル .js text/javascript
VBScriptファイル .vbs text/vbscript
実行ファイル .exe application/octet-stream
再利甚期限

(Expires)
取埗したデヌタを再床サヌバヌに問い合わせなくおもブラりザが再利甚しお良い期限

デヌタの最終曎新日時(Last-Modified)や゚ンティティ情報(ETag)

い぀曎新されたものかの情報
サヌバヌ䞊のファむルの堎所ID
ファむルのサむズ
曎新日時などから算出した曎新チェック情報。
次回同じデヌタをリク゚ストする際に、これらの情報を䜿っお曎新されおいるかどうかを確認

移動先

(Location)
リク゚ストず違う堎所からデヌタを取埗するように瀺す指瀺。
リダむレクト先URI

タむムアりト

芁求時
(=コネクション)

皮類 内容 ステヌタス
コネクション
タむムアりト
接続時 408
リク゚スト
タむムアりト
408
リヌド
タむムアりト
芁求応答たで
セッション
タむムアりト
同䞀セッションを維持できる時間
ゲヌトりェむ
タむムアりト
504

Follow me!

次の蚘事

JAVA 環境蚭定