HTTP 1.1 RFC#GETをご覧になり、GETリクエストのアイデアを入手してください。ブラウザを使用してWebサイトにアクセスすると(すべてのWebサイトが何らかのHTTPサーバー上で実行されている)、ブラウザはクライアントとして動作し、Webサイトはサーバーとして動作します。クライアントは要求を開始し、サーバーはその要求に応答します。
リクエストの主な種類(ユーザーが表示しようとしているURLに応じてブラウザによって生成される)は、GETリクエストです。
たとえば、ユーザがURL http://www.example.com/index.htmにアクセスする場合、ブラウザはwww.example.comのTCPポート80(デフォルト)に接続します。どのブラウザが常に必要になるが、最初の行(要求行)の後のヘッダーはオプションです
GET /index.htm HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; sv-SE; rv:1.8.1.12) Gecko/20080207 Ubuntu/7.10 (gutsy) Firefox/2.0.0.12
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
:接続が行われると、ブラウザは次のようになります標準のGETリクエストで「会話」を開始しますほとんどのウェブサイトがそれなしでは動作しないため、「ホスト」ヘッダーを含めることができます(これにより、複数のWebサイトで単一のIPアドレスを共有できます)。その場合、サーバーはここでホスト名を指定せずに訪問しようとしているWebサイトを知ることができません。
そのサーバー上のindex.htmをフェッチするための最低限のGETリクエストは、単に次のようになります要求の端部は、二重CRLFシーケンス(ASCIIコード13及び10)によって終了されること
GET /index.htm HTTP/1.1
NOTE最も最近のヘッダー行の1つ、要求ヘッダーの終わりを示すもう1つ。ダブルCRLFシーケンスがサーバによって受信されると、サーバはそれに応じてステータスラインおよびコード(文書が見つかったか?)を応答する。ドキュメントが見つかった場合は、通常、HTTPステータスコード200、レスポンスヘッダー(これらはリクエストヘッダーと同じ形式です)、ダブルCRLFシーケンス、要求されたファイルの本文が続きます。 HTTP標準では、これを「エンティティ」と呼びます。この場合、返されるエンティティはindex.htmの内容になります。上記の例を使用すると、サーバーは次のように反応するかもしれません:あなたは物事が要求および応答に応じて、より複雑に得ることができることを推測することができますが
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 66
Last-Modified: Wed, 14 Sep 2016 13:05:21 GMT
<html>
<body>
Welcome to my example page
</body>
</html>
は、だからそれは一言で言えば、HTTPのGET /応答会話の簡単な例ですヘッダー。
実行中のサーバーに手動でGET要求を送信する方法についての質問に答えるには、Linuxマシンで「curl -i」を使用するのが好きです。 Curlはクライアント/ブラウザとして機能し、GET(ダウンロード)するURLを指定することができます。例えば:
-iオプションではなく、この場合のTest.htmの内容であるだけエンティティよりも(HTTPレスポンスヘッダを含む)全体のウェブサーバの応答を表示するようにカールさせます。実行中のWebサーバーが同じマシン上にあるかネットワーク上の他の場所にあるかにかかわらず、上記のURLを調整するだけで済みます。
*リクエスト*をサーバーから送信する理由は何ですか?クライアントは要求を送信し、応答で応答します。 –
リクエストを作成する場合は、ローカルブラウザでリクエストしますか?あるいは 'curl'のようなコマンドラインツールを使用しますか? –
私は自分が何をやっているのか分からないと言っているように、私はサーバーについての最初のことは知らない。クライアントは要求を送信し、私は応答します。このサーバーには既に返信があります。curlコマンドの外観はどうですか? http://stackoverflow.com/questions/27422918/send-http-get-request-using-curl-in-cは1つを示します。しかし、再び私はこれがURLを持っているかどうかわからないし、もしそれが何かをするならば – TheMangaStand