HTTP - IPアドレスとは、どういうものなのか?IPv4×IPv6で調べよう!!

あなたのIPアドレスは38.107.191.88で、ホスト名は38.107.191.88です

HTTP - Hypertext Transfer Protocol

HyperText Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル、略称 HTTP)とは、WebブラウザとWebサーバの間でHTMLなどのコンテンツ送受信に用いられる通信プロトコルであり、RFC 2616で規定されています。ハイパーテキスト転送プロトコルとも呼ばれています。
HTTP は HTML (HyperText Markup Language) や XML (Extensible Markup Language) によって記述されたハイパーテキストを転送することを主な目的としていますが、転送する内容はハイパーテキストに限らず画像、音声などのバイナリデータも含め様々なデータを送ることができます。HTTPはリクエスト-レスポンス型のプロトコルです。すなわち、クライアントがサーバにリクエストメッセージを送信し、サーバがこれにレスポンスメッセージを返します。レスポンスメッセージを返した時点で基本的にサーバは初期状態に戻ります。つまり、サーバがクライアントの状態を保存しません。HTTPにおいてはトランスポート・プロトコルとして通常TCPを使用します。World Wide WebにおけるWebページなどの資源は、Uniform Resource Identifierによって指定されます。HTTPを使用して資源にアクセスするときは、http: が先頭についたURLを使用します。最初、HTTP/0.9ではURLのみの簡単なやりとりでしたが、HTTP/1.0でNNTPやSMTPのような各種ヘッダが定義され、HTTP cookieなどの利用が可能になりました。 HTTP/1.1では複数データを転送するためのキープアライブ(keep-alive)機能やプロキシなどの利用も想定された仕様になりました。
このほかの点を箇条書きで示します
■ポート番号80をデフォルトとして使用します。
■SSL(TLS)で暗号化され、セキュリティを確保したHTTPは、HTTPSと呼ばれます。(httpsは実際にはURIスキームの1つであり、実際のプロトコルにはHTTP over SSL/TLSが用いられます。
■HTTP は基本的にサーバが状態保持しない (stateless) プロトコルですが、データベースなどを使用する Webアプリケーションにおいては状態保持が必要だったため、そのためにいわゆる Cookie とよばれる機構が Netscape Communications Corporation によって導入されました。Cookie を使用することによって状態を管理し、"セッション" を維持することが可能になります。
■HTTPの拡張プロトコルとしてWebDAVがあります。
■UPnPでは、HTTPをUDP上で使用するHTTPUや、マルチキャストで使用するHTTPMUが規定されました。

HTTPステータスコード

1xx Informational 情報

リクエストは受け取られた。処理は継続される。
■100: Continue
継続。クライアントはリクエストを継続できる。サーバがリクエストの最初の部分を受け取り、まだ拒否していないことを示す。
例として、クライアントがExpect: 100-continueヘッダをつけたリクエストを行い、それをサーバが受理した場合に返される。
■101: Switching Protocols
プロトコル切替え。サーバはリクエストを理解し、遂行のためにプロトコルの切替えを要求している。
■102: Processing
処理中。WebDAVの拡張ステータスコード。処理が継続されて行われていることを示す。

2xx Success 成功

リクエストは受け取られ、理解され、受理された。
■200: OK
OK。リクエストは成功し、レスポンスとともに要求に応じた情報が返される。
ブラウザでページが正しく表示された場合は、ほとんどがこのステータスコードを返している。
■201: Created
作成。リクエストは完了し、新たに作成されたリソースのURIが返される。
例:PUTメソッドでリソースを作成するリクエストを行ったとき、そのリクエストが完了した場合に返される。
■202: Accepted
受理。リクエストは受理されたが、処理は完了していない。
例:PUTメソッドでリソースを作成するリクエストを行ったとき、サーバがリクエストを受理したものの、リソースの作成が完了していない場合に返される。バッチ処理向け。
■203: Non-Authoritative Information
信頼できない情報。オリジナルのデータではなく、ローカルやプロキシ等からの情報であることを示す。
■204: No Content
内容なし。リクエストを受理したが、返すべきレスポンスエンティティが存在しない場合に返される。
例:POSTメソッドでフォームの内容を送信したが、ブラウザの画面を更新しない場合に返される。
■205: Reset Content
内容のリセット。リクエストを受理し、ユーザエージェントの画面をリセットする場合に返される。
例:POSTメソッドでフォームの内容を送信した後、ブラウザの画面を初期状態に戻す場合に返される。
■206: Partial Content
部分的内容。部分的GETリクエストを受理したときに、返される。
例:ダウンロードツール等で分割ダウンロードを行った場合や、レジュームを行った場合に返される。
■207: Multi-Status
複数のステータス。WebDAVの拡張ステータスコード。
■226: IM Used
IM使用。Delta encoding in HTTPの拡張ステータスコード。

3xx Redirection リダイレクション

リクエストを完了させるために、追加的な処理が必要。
■300: Multiple Choices
複数の選択。リクエストしたリソースが複数存在し、ユーザやユーザーエージェントに選択肢を提示するときに返される。
具体例として、W3Cのhttp://www.w3.org/TR/xhtml11/DTD/xhtml11.html
■301: Moved Permanently
恒久的に移動した。リクエストしたリソースが恒久的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。
例としては、ドメイン名の後に/を書かずにアクセスした場合に返される。具体例として、http://ja.wikipedia.org
■302: Found
発見した。リクエストしたリソースは一時的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。
元々はMoved Temporarily(一時的に移動した)で、本来は一時的にリソースが移動したときに使用するステータスコードであった。しかし、リダイレクトの意味で使用するサーバが多かったため、302はFoundになり、新たに303,307が作成された。
■303: See Other
他を参照せよ。リクエストに対するリソースが他のURLに存在するときに返される。Location:ヘッダに移動先のURLが示されている。
例として、掲示板やWikiなどで投稿後にブラウザを他のURLに転送したいときに返す。
■304: Not Modified
未更新。リクエストしたリソースは更新されていないことを示す。
例として、 If-Modified-Since:ヘッダを使用したリクエストを行い、そのヘッダに示された時間以降に更新がなかった場合に返される。
■305: Use Proxy
プロキシを使用せよ。レスポンスのLocation:ヘッダに示されるプロキシを使用してリクエストを行わなければならないことを示す。
■306: (Unused)
将来のために予約されている。ステータスコードは前のバージョンの仕様書では使われていたが、もはや使われておらず、将来のために予約されている。
■307: Temporary Redirect
一時的リダイレクト。リクエストしたリソースは一時的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。
302の規格外な使用法が横行したため、302の本来の使用法を改めて定義したもの。

4xx Client Error クライアントエラー

クライアントからのリクエストに誤りがあった。
■400: Bad Request
リクエストが不正である。
クライアントのリクエストがおかしい(定義されていないメソッドを使うなど)場合に返される。
■401: Unauthorized
認証が必要である。
Basic認証やDigest認証などを行うときに使用される。たいていのブラウザはこのステータスを受け取ると、認証ダイアログを表示する。
■402: Payment Required
支払いが必要である。未実装。
■403: Forbidden
禁止されている。リソースにアクセスすることを拒否された。
アクセス権がない場合や、ホストがアクセス禁止処分を受けた場合などに返される。
例:社内(イントラネット)からのみアクセスできるページに社外からアクセスしようとした。
■404: Not Found
未検出。リソースが見つからなかった。
単に、アクセス権がない場合などにも使用される。
■405: Method Not Allowed
許可されていないメソッド。許可されていないメソッドを使用しようとした。
例:POSTメソッドの使用が許されていない場所で、POSTメソッドを使用した場合に返される。
■406: Not Acceptable
受理できない。Accept関連のヘッダに受理できない内容が含まれている場合に返される。
例:サーバは英語か日本語しか受け付けられないが、リクエストのAccept-Language:ヘッダにzh(中国語)しか含まれていなかった。
例:サーバはapplication/pdfを送信したかったが、リクエストのAccept:ヘッダにapplication/pdfが含まれていなかった。
例:サーバはUTF-8の文章を送信したかったが、リクエストのAccept-Charset:ヘッダには、UTF-8が含まれていなかった。
■407: Proxy Authentication Required
プロキシ認証が必要である。プロキシの認証が必要な場合に返される。
■408: Request Timeout
リクエストタイムアウト
リクエストが時間以内に完了していない場合に返される。
■409: Conflict
矛盾
要求は現在のリソースと矛盾するので完了出来ない。
■410: Gone
消滅した
ファイルは恒久的に移動した。どこに行ったかもわからない。
404 Not Foundと似ているが、こちらは二度と復活しない場合に示される。
■411: Length Required
長さが必要。Content-Length ヘッダがないのでサーバがアクセスを拒否した場合に返される。
■412: Precondition Failed
前提条件で失敗した
前提条件が偽だった場合に返される。
例:リクエストのIf-Unmodified-Since:ヘッダに書いた時刻より後に更新があった場合に返される。
■413: Request Entity Too Large
リクエストエンティティが大きすぎる。リクエストエンティティがサーバの許容範囲を超えている場合に返す。
例:アップローダの上限を超えたデータを送信しようとした。
■414: Request-URI Too Long
リクエストURIが大きすぎる。URIが長過ぎるのでサーバが処理を拒否した場合に返す。
例:画像データのような大きなデータをGETメソッドで送ろうとし、URIが何10kBにもなった場合に返す(上限はサーバに依存する)。
■415: Unsupported Media Type
サポートしていないメディアタイプ。指定されたメディアタイプはサポートされていない場合に返す。
■416: Requested Range Not Satisfiable
リクエストしたレンジは範囲外にある。実ファイルのサイズを超えるデータを要求した。
たとえば、リソースのサイズが1024Byteしかないのに、1025Byteを取得しようとした場合などに返す。
■417: Expectation Failed
期待するヘッダに失敗
その拡張はレスポンスできず、またはプロキシサーバが次に到達するサーバがレスポンスできないと判断している。
具体例として、Excpect:ヘッダに100-continue以外の変なものを入れた場合や、そもそもサーバが100 Continueが扱えない場合に返す。
■418: I'm a teapot
私はティーポット。HTCPCP/1.0の拡張ステータスコード。
ティーポットにコーヒーを淹れさせようとして、拒否された場合に返す。
■422: Unprocessable Entity
処理できないエンティティ。WebDAVの拡張ステータスコード。
■423: Locked
ロックされている。WebDAVの拡張ステータスコード。リクエストしたリソースがロックされている場合に返す。
■424: Failed Dependency
依存関係で失敗。WebDAVの拡張ステータスコード。
■426: Upgrade Required
アップグレード要求。Upgrading to TLS Within HTTP/1.1の拡張ステータスコード。

5xx Server Error サーバエラー

サーバがリクエストの処理に失敗した。
■500: Internal Server Error
サーバ内部エラー。サーバ内部にエラーが発生した場合に返される。
例として、CGIプログラムに文法エラーがあったり、設定に誤りがあった場合などに返される。
■501: Not Implemented
実装されていない。実装されていないメソッドを使用した。
例として、WebDAVが実装されていないサーバに対してWebDAVで使用するメソッド(MOVEやCOPY)を使用した場合に返される。
■502: Bad Gateway
不正なゲートウェイ。ゲートウェイ・プロキシサーバは不正な要求を受け取り、これを拒否した。
■503: Service Unavailable
サービス利用不可。サービスが一時的に過負荷やメンテナンスで使用不可能である。
例として、アクセスが殺到して処理不能に陥った場合に返される。
■504: Gateway Timeout
ゲートウェイタイムアウト。ゲートウェイ・プロキシサーバはURIから推測されるサーバからの適切なレスポンスがなくタイムアウトした。
■505: HTTP Version Not Supported
サポートしていないHTTPバージョン。リクエストがサポートされていないHTTPバージョンである場合に返される。
■506: Variant Also Negotiates
Transparent Content Negotiation in HTTPで定義されている拡張ステータスコード。
■507: Insufficient Storage
容量不足。WebDAVの拡張ステータスコード。リクエストを処理するために必要なストレージの容量が足りない場合に返される。
■509: Bandwidth Limit Exceeded
帯域幅制限超過。そのサーバに設定されている帯域幅(転送量)を使い切った場合に返される。
■510: Not Extended
拡張できない。An HTTP Extension Frameworkで定義されている拡張ステータスコード。