HTTPヘッダ確認ツール / HTTPリクエストのサンプル / HTTPメソッド

通信プロトコルHTTP

HTTPヘッダ確認ツール

 状態:確認中  閲覧数:2,420  投稿日:2016-02-24  更新日:2016-11-03
Chrome拡張
HTTP Headers という 5万人が使っている Chrome 拡張のマルウェア疑惑。セッション盗まれて BTC も盗まれそうになった話。
プロトコルビュワー

free web debugging proxy
Fiddler

Telnet
telnetでリクストヘッダ内容を確認する方法はありますか? 指定した「GETと Host」以外の送信情報を表示させることは可能?





HTTP GET1.1リクエストのサンプル


ブラウザで Webページを開く際、ブラウザはサーバに下記のような要求メッセージを送信
・1行目はリソースを取得(GET)するための指示とHTTPバージョン
・それ以降は補足情報を伝えるリクエストヘッダ

GET /status/234 HTTP/1.1
Host: sakura.e1blue.co
Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding gzip, deflate, sdch
Accept-Language ja,en-US;q=0.8,en;q=0.6,fr;q=0.4,ru;q=0.2
Cookie PHPSESSID=b3utdnk1q3v8ff2pqjsjulmco5
Referer http://sakura.w4c.work/sakura/topicedit/234
Upgrade-Insecure-Requests 1
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36


HTTPレスポンスのサンプル


これに対してサーバは下記のような応答メッセージを返す
・1行目は処理の結果を示す応答コード
・2行目以降がレスポンスヘッダ部分

HTTP/1.1 200 OK
Date Wed, 02 Mar 2016 22:45:20 GMT
Server Apache
Set-Cookie PHPSESSID=5ct7p84hlfo431po7jdi7bljb5; path=/
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must-revalidate
Pragma no-cache
Connection close
Transfer-Encoding chunked
Content-Type text/html; charset=UTF-8


HTTPメソッド

 閲覧数:186 投稿日:2016-02-29 更新日:2016-05-21 

一覧表


HTTPでは8つのメソッドが定義されている
・但し、実際のHTTP通信ではGETとPOSTメソッドだけで殆どを占める

1.0
・HTTP1.0

1.1
・HTTP1.1

一覧表
メソッド 1.0 1.1 説明
GET HTTPリクエストの最も基本的な動作。指定されたURIのリソースを取得。ブラウザはサーバへ対してページ取得を要求。「データ本体」は未送信
POST GETとは反対にクライアントがサーバへデータを送信。method="POST" を指定したフォームに入力したデータをサーバへ転送する。フォームから情報を送信するなど(method="POST"が指定されている場合)では、HTTPヘッダーの後にデータ本体を送信。Webフォームや電子掲示板への投稿などで使用される。GETの場合と同じく、サーバはクライアントにデータを返すことができる
PUT 指定したURIにリソースを保存する。URIが指し示すリソースが存在しない場合は、サーバはそのURIにリソースを作成する。ファイルをサーバにアップロードする際に使用。画像アップロードなどが代表的
DELETE 指定したURIのリソースを削除する。リソース削除をサーバへ要求
OPTIONS × サーバがサポートしているメソッドやオプションを調査する際に使用。例えば、サーバがサポートしているHTTPバージョンなどを知ることができる
HEAD GETと似ているが、サーバはHTTPヘッダのみ返す。クライアントはWebページを取得せずともそのWebページが存在するかどうかを知ることができる。例えばWebページのリンク先が生きているか、データを全て取得することなく検証することができる
TRACE × サーバまでのネットワーク経路をチェックする。HTTP要求がどのプロキシサーバを経由して送信されるかなど、HTTP の動作をトレースする際に使用。サーバは受け取ったメッセージのそれ自体をレスポンスのデータにコピーして応答する。このメッセージを受け取った最後のサーバは、要求メッセージに含まれるエンティティ(通常はヘッダ+メッセージボディ)をそのまま返す。WindowsのTracertやUNIXのTracerouteとよく似た動作
CONNECT × TCPトンネルを接続する。暗号化したメッセージをプロキシサーバを経由して転送する際に用いる。プロキシサーバを経由して SSL 通信する際などに使用
LINK × 指定した URL とリソースにリンク関係を結ぶ。HTTP/1.1 では廃止
UNLINK × 指定した URL とリソースの間のリンク関係を解除。HTTP/1.1 では廃止
「GETの実装は必須であるが,POSTはオプションである」の意味は、POSTする際もGETは送られるってこと?

仮想ホスト

 閲覧数:176 投稿日:2016-03-12 更新日:2016-06-15 

仮想ホスト


HTTP/1.1 では仮想ホストがサポートされました
・HTTP/1.1 のクライアントは Host ヘッダでホスト名を送信しなくてはなりません
・サーバーは、仮想ホストに対応したコンテンツを応答します
・これにより、1台のサーバーで複数のWebサイトをサポートすることが可能になりました

【リクエスト】
GET / HTTP/1.1
Host: sakura.e1blue.co


持続的接続


HTTP/1.1 では持続的接続が標準となりました
・クライアントは下記のように 1回の TCP接続で複数のコンテンツを要求することにより、通信パフォーマンスを向上させることができます
・持続接続を継続する場合には通常 Connection ヘッダで Keep-Alive を、最後の要求には close を指定します

【リクエスト】
GET /aaa.html HTTP/1.1
Host: sakura.e1blue.co
Connection: Keep-Alive

GET /bbb.html HTTP/1.1
Host: sakura.e1blue.co
Connection: close

これに対し、サーバーは Content-Length やチャンクなどで複数のコンテンツの境界が明示されたコンテンツを返却します
・timeout には次の要求が来ない場合にタイムアウトを発生させる時間(秒数)、max にはこの持続接続で要求可能な要求の残り回数が指定されます

【レスポンス】
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive

(aaa.html のコンテンツ)
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
Keep-Alive: timeout=5, max=99
Connection: close

(bbb.html のコンテンツ)


Keep-Aliveの動作


チャンク


CGI の結果返却でコンテンツ生成時にはまだコンテンツの長さが分からない場合など、サーバーはチャンク形式のデータを返却することができます
・チャンク形式のデータでは、継続するデータのバイト数が 16進数で示されます
・0 はデータの終わりを意味します

【レスポンス】
HTTP/1.1 200 OK
Content-Type: text/html
Transfer-Encoding: chunked

1234
(16進数で1234バイトのデータ)
9ab
(16進数で9abバイトのデータ)
0
(コンテンツの終了)



499 (Request has been forbidden by antivirus)

HTTPリクエストヘッダ



週間人気ページランキング / 9-19 → 9-25
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 16
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 15
3 PHPのmb_send_mail関数でメール送信できない | メール処理システム 11
4 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 10
5 tar: これは tar アーカイブではないようです 8
5 ImageMagick と imagick の違い | ImageMagick(ソフトウェアスイート) 8
5 さくらVPS0 8
6 manページ日本語表示 | CentOS 7 (CentOS) 7
6 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 7
7 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
7 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 6
7 PHPファイルでchmodエラー | PHP(プログラミング言語) 6
7 echo と cat の違い 6
8 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 5
8 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 5
8 「CentOS6」から「CentOS7」への移行 | CentOS 7 (CentOS) 5
8 「さくらVPS」で、「CentOS6」を「CentOS7」へ変更するためには? | CentOS 7 2週間無料のお試し期間 Link(さくらVPS) 5
9 6回目-10.Nginxでバーチャルホスト設定確認 | CentOS 7 2週間無料のお試し期間 6回目(さくらVPS) 4
9 cronで定期実行しているphpファイルを、コマンドライン経由で即時実行する | cron(Linuxコマンド) 4
9 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/26 1:01 更新