<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WindowsServer管理者への道 &#187; HTTP</title>
	<atom:link href="http://ebi.dyndns.biz/windowsadmin/tag/http/feed/" rel="self" type="application/rss+xml" />
	<link>http://ebi.dyndns.biz/windowsadmin</link>
	<description>WindowsServer管理のノウハウを紹介します</description>
	<lastBuildDate>Sun, 01 Nov 2009 12:55:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>コマンドプロンプトだけでWebサイトを閲覧する</title>
		<link>http://ebi.dyndns.biz/windowsadmin/2009/11/01/%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%97%e3%83%ad%e3%83%b3%e3%83%97%e3%83%88%e3%81%a0%e3%81%91%e3%81%a7web%e3%82%b5%e3%82%a4%e3%83%88%e3%82%92%e9%96%b2%e8%a6%a7%e3%81%99%e3%82%8b/</link>
		<comments>http://ebi.dyndns.biz/windowsadmin/2009/11/01/%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%97%e3%83%ad%e3%83%b3%e3%83%97%e3%83%88%e3%81%a0%e3%81%91%e3%81%a7web%e3%82%b5%e3%82%a4%e3%83%88%e3%82%92%e9%96%b2%e8%a6%a7%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 12:51:55 +0000</pubDate>
		<dc:creator>ebi</dc:creator>
				<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HyperText]]></category>
		<category><![CDATA[Protocol]]></category>
		<category><![CDATA[telnet]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://ebi.dyndns.biz/windowsadmin/2009/11/01/%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%97%e3%83%ad%e3%83%b3%e3%83%97%e3%83%88%e3%81%a0%e3%81%91%e3%81%a7web%e3%82%b5%e3%82%a4%e3%83%88%e3%82%92%e9%96%b2%e8%a6%a7%e3%81%99%e3%82%8b/</guid>
		<description><![CDATA[今回はWeb、その中でもHTTPの部分の話です。世の中にはさまざまなブラウザがあり、非常に高機能なものが多いです。でも、それらが提供している機能のうち一番の基礎となる通信部分に関してはかなりシンプルです。
 
HTTPとは
まず、はじめにHTTPとは何か?という点に関してです。HTTPはHyper Text Transfer Protocolの略で、Hyper Textを転送するための手続きだ、というわけですね。Hyper Textというのはテキストを超えるものだ、ということです。そして、Hyper Textを書く手段がHTMLで、そのHTMLを伝える手段がHTTPなわけです。このあたりはWikipediaに説明を譲ります。

Hypertext Transfer Protocol &#8211; Wikipedia 
ハイパーテキスト – Wikipedia 
HyperText Markup Language – Wikipedia 

要は世の中に沢山あるWebサーバーから情報をひっぱってこようとおもったら、HTTPでおしゃべりすればいい、ということです。
Webページを取得してみる
それでは実際にやってみましょう。やってみると簡単ですよ。簡単なページが良いので、いつものようにGoogleのページを引っ張ってきてみましょう。
まずは、googleのWebサーバーであるwww.google.co.jpに接続します。WebサーバーはTCPの80番で動作していますので80番に接続します。


   1: C:\&#62;telnet www.google.co.jp 80


接続に成功すると何も表示されない状態になります。それで正常です。この状態でWebサーバーに対してページを要求します。以下のように入力します。


   1: GET / HTTP/1.1

   2: Host: www.google.co.jp


入力する際に、自分では自分が入力している文字が見えませんがそのまま打てば良いです。そして入力後にはEnterを2回押します。
これで以下のようにgoogleのトップページのHTMLが入手できます。
 
ブラウザでwww.google.co.jpのトップページに行き、ソースを表示すると、まったく同じものが入手できていることがわかると思います。ブラウザが裏でまったく同じ事をしている、ということが実感できるのではないかと思います。
説明すべきことはまだまだ沢山あるのですが、まずはこれが基本です。色々なWebサイトに対して接続、リクエストしてみて楽しんでみて下さい。
]]></description>
		<wfw:commentRss>http://ebi.dyndns.biz/windowsadmin/2009/11/01/%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%97%e3%83%ad%e3%83%b3%e3%83%97%e3%83%88%e3%81%a0%e3%81%91%e3%81%a7web%e3%82%b5%e3%82%a4%e3%83%88%e3%82%92%e9%96%b2%e8%a6%a7%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>「インターネットに繋がらない」 &#8211; 初級編</title>
		<link>http://ebi.dyndns.biz/windowsadmin/2008/12/14/%e3%80%8c%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%8d%e3%83%83%e3%83%88%e3%81%ab%e7%b9%8b%e3%81%8c%e3%82%89%e3%81%aa%e3%81%84%e3%80%8d-%e5%88%9d%e7%b4%9a%e7%b7%a8/</link>
		<comments>http://ebi.dyndns.biz/windowsadmin/2008/12/14/%e3%80%8c%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%8d%e3%83%83%e3%83%88%e3%81%ab%e7%b9%8b%e3%81%8c%e3%82%89%e3%81%aa%e3%81%84%e3%80%8d-%e5%88%9d%e7%b4%9a%e7%b7%a8/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 15:14:37 +0000</pubDate>
		<dc:creator>ebi</dc:creator>
				<category><![CDATA[ネットワーク障害]]></category>
		<category><![CDATA[401 Unauthorized]]></category>
		<category><![CDATA[404 Not Found]]></category>
		<category><![CDATA[500 Internal Server Error]]></category>
		<category><![CDATA[APIPA]]></category>
		<category><![CDATA[Default Gateway]]></category>
		<category><![CDATA[DHCP]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[IP Address]]></category>
		<category><![CDATA[ipconfig]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[Subnet Mask]]></category>
		<category><![CDATA[TCP]]></category>
		<category><![CDATA[TCP/IP]]></category>
		<category><![CDATA[Troubleshoot]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://ebi.dyndns.biz/windowsadmin/?p=20</guid>
		<description><![CDATA[「インターネットに繋がらない！」という発言をよく聞きます。テクノロジーを理解していないお客さんならともかく、プロとしてはこのような発言はしたくないものです。「インターネットに繋がらない」時には具体的にどのようなことが原因として考えられるのか考えてみます。
※ここでは「インターネットに繋がる」という言葉の正確さに関しては議論しないことにします。

大まかな流れとその確認確認ポイント
通常お客さんが「インターネットに繋がらない」と言ったときにはブラウザでWeb上のコンテンツを表示できなくなったときでしょうから、そのときの大まかな流れを見てみます。

PCが起動する 
有線または無線にてEthernetに接続する 
固定またはDHCPにてTCP/IPの設定がなされる 
ブラウザにてURLが指定される 
DNSにホスト名に対応するIPアドレスを問い合わせ、回答を得る 
該当のWeb Serverに接続する 
Web Serverからコンテンツを得る 
ブラウザにコンテンツを表示する 

 
これはかなり大まかな流れであって、実際にはまだまだいくらでも細かく処理を記述することが可能ですが、最低この程度の粒度では事象を抑えてもらいたいです。
このレベルでの確認ポイントは以下です。

きちんとケーブルが刺さっているか 
IPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSの設定がきちんとなされているか 
DNSでの名前解決(ホスト名からIPアドレスへの変換)がきちんとなされているか 
該当のWeb Serverに接続できているか 
コンテンツを得られるか 

それぞれ確認方法を紹介してみましょう。

きちんとケーブルが刺さっているか
これはどうやって確認すればいいかというと････。目で見て確認してください(笑)。でも、せっかくなのでコマンドで確認する方法も紹介しましょう。

このように「ipconfig」というコマンドを使うとネットワークの状態を見ることができます。今、上の図ではきちんとIPアドレス等が表示されているので、この状態であれば「ケーブルがきちんと刺さっている」と言うことがわかります。ケーブルがきちんと刺さっていない場合にはここには「media disconnected」と表示されます。このように表示された場合にはケーブルが刺さっていない状態ですので、ケーブルの確認をしてください。
IPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSの設定がきちんとなされているか
ケーブルが刺さっていることを確認したら次はIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNS等のTCP/IPの設定がきちんとなされているかを確認します。これも先ほどと同じく「ipconfig」コマンドで確認できるのですが、「ipconfig」コマンドだけではDNSの設定が確認できないので「ipconfig /all」コマンドを実行することで確認します。

ここできちんとIPアドレス(IP Address)、サブネットマスク(Subnet Mask)、デフォルトゲートウェイ(Default Gateway)、DNS(DNS Servers)が設定されていることを確認します。
ここでこれらのパラメータを自分で設定している人(固定的に設定している人)と自動的に設定している人とで若干確認、修正方法が異なります。
固定になっているのか、自動になっているのかの判別は上記コマンド結果の「Dhcp Enabled」の部分がYesになっているかNoになっているかでわかります。上記のサンプルではDHCPが有効になっていて、DHCPサーバー(192.168.1.254)からTCP/IPの設定を自動取得していることがわかります。
固定で設定している場合には「インターネットプロトコル(TCP/IP)」のプロパティから手動で値を設定、修正します。


自動になっている場合にはDHCPサーバーがきちんと稼動して、正しい設定を配布してくれている必要があります。自動的に取得する設定になっているにもかかわらず「169.254.x.x」、あるいは「0.0.0.0｣というアドレスになっている場合には正常にDHCPサーバーから設定を取得できていない状態です。DHCPサーバーの正常動作を確認するか、あるいは固定で設定してしまうかなどの対応が必要です。
参考：APIPA &#8211; Wikipedia
そもそもどんな値を設定すればいいのか、設定されていればいいのかわからない人はTCP/IPの基礎を勉強しなくてはいけないですね。後日書く予定です。
ここまでの設定の確認としては、「デフォルトゲートウェイまでのpingが通ることを確認する」という方法が有効です。

「ping デフォルトゲートウェイのIPアドレス」を実行して、Pingに対してReplyがあることを確認しましょう。
DNSでの名前解決(ホスト名からIPアドレスへの変換)がきちんとなされているか
次にDNSでの名前解決がきちんとなされているかの確認方法です。「nslookup」というコマンドをつかって「nslookup ホスト名」とすることで調べられます。「ホスト名」というのはURLのうち下の例で言うとxxxx.xxx.xxの部分です。    「http://xxxx.xxx.xx/yyy/xxx/」    http://の直後からはじめの「/」の前までの部分ですね。

このようにホスト名からIPアドレスへの変換がうまくいっている必要があります。そもそもここでスペルミスなどをすると以下のように答えが返ってきません。

ここがうまくいかない場合には以下の2つの可能性があります。

TCP/IPの設定でDNSの設定を間違えている(正しいDNSサーバーを利用していない) 
接続しようとしている先のサイトの情報を保持しているDNSサーバーに障害が起きている 

どちらなのかを判断するためには、その他のホスト名の名前解決ができるかどうかを調べましょう。私はいつも「www.google.com」が解決できるかどうか試しています。
ここまでのこと(ケーブル、TCP/IP設定、DNS)を一度に試す方法があります。それは「ping www.google.com」を実行することです。

ケーブルが繋がっていなければPingに応答があるわけはありませんし、TCP/IPの設定がただしいからgoogleのサーバーまで通信できています。また、www.google.comをDNSをつかってIPアドレスに変換できているからPingが打てているのです。www.google.comのホストはきちんとpingのReplyを返してくれるので確認が取れるわけです。

該当のWeb Serverに接続できているか
ここまでの確認でクライアント側のTCP/IPおよびDNSの設定は問題ないことがわかりました。もう少し上の層に視点を切り替えていきます。まずは、該当のWeb Serverに接続できているかどうかです。
これを試すには「telnet ホスト名 http」を実行します。

上記のようにコマンドプロンプトが真っ黒になれば接続は成功です。うまくいかない場合には「接続中: ホスト名&#8230;」としばらく表示された後で「ホストへ接続できませんでした。 ポート番号 http: 接続に失敗しました」と表示されるはずです。
これは何をしているのかというと、まさに該当のホスト(Web Server)にTCPの80番(HTTP)で接続をしているのです。サイトが見えるためにはこの接続が成功しないといけません。
DNSの確認まで成功していて、ここで失敗する場合には以下の3つの可能性があります。

ホスト名(URL)を間違えている 
該当のWeb Serverがダウン中、あるいは接続を拒否している 
HTTPで接続できないようにネットワーク上のどこかでブロックされている 

1番目に関しては正しいものを確認すればいいですし、2番目に関してはしばらく時間を置けばよいです。1番、2番に関してはいくつかのサイトに対して接続を試してみて、成功するものがあるかどうかで判別がつくと思います。
問題は3番の場合です。どこにも接続できないという場合にはかなりの確立で自分の存在しているネットワークからインターネットに出る途中の段階でブロックされている可能性が高いです。こうなってくると一筋縄ではいかないのでそれ相応の対応を取らなければいけないでしょう。素直にネットワーク管理者に状況を伝えるべきです。
コンテンツを得られるか
ここまでの段階で接続が成功したのであれば、あとはもうブラウザでの確認ができるはずなのでブラウザを単純に使います。そうすると正常に表示されないのであればブラウザにエラーが表示されるはずです。代表的なエラーメッセージを挙げておきます。

404 &#8211; Not [...]]]></description>
		<wfw:commentRss>http://ebi.dyndns.biz/windowsadmin/2008/12/14/%e3%80%8c%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%8d%e3%83%83%e3%83%88%e3%81%ab%e7%b9%8b%e3%81%8c%e3%82%89%e3%81%aa%e3%81%84%e3%80%8d-%e5%88%9d%e7%b4%9a%e7%b7%a8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
