web-dev-qa-db-ja.com

端末からウェブページにアクセスするには?

Apacheサーバーをテストしています。通常はx.x.x.x/directory/index.php Firefoxで、次にhttpd/error_logsとトラブルシューティング。

私の質問は、テストシステムにWebブラウザ(Chrome/Firefoxなど)がない場合はどうなりますか?端末から同等のテストを行うにはどうすればよいですか?私は試した ping x.x.x.x/directory/index.phpが、そのようには機能しません。

5
Kel

私の質問は、Chrome/Firefoxをオンにしていない場合はどうなりますか?端末から同等のテストを行うにはどうすればよいですか? ping x.x.x.x/directory/index.phpを試しましたが、うまくいきません。

ping を使用しても機能しません。 pingが行うことは、ネットワークアドレスからICMPパケットを送受信することだけです。したがって、あなたの例では、実際に「ping」できるのはping x.x.x.xだけで、残りのURL(/directory/index.php)はpingを解決しようとしているため、wholeホスト名であるかのようにURL。エラーは次のようになります:

ping: cannot resolve x.x.x.x/directory/index.php: Unknown Host

しかし、あなたが探している特定のタイプのウェブサーバーのテスト/デバッグのために、私は通常 curl を使用しますが、特に基本的な応答ヘッダーだけを返すcurl -I -Lを使用しますサーバーが配置する可能性のあるすべての場所のリダイレクトに従います。 -Iフラグはcurlにヘッダーのみを表示するように指示し、-Lフラグはcurlに発生したサーバーリダイレクトを追跡するよう指示します。

たとえば、curl -I -Lに対してこのgoogle.comコマンドを実行すると、次のようになります。

curl -I -L google.com

次の応答ヘッダーが表示されます。

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Mon, 24 Aug 2015 02:16:32 GMT
Expires: Wed, 23 Sep 2015 02:16:32 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN

HTTP/1.1 200 OK
Date: Mon, 24 Aug 2015 02:16:32 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Set-Cookie: PREF=ID=1111111111111111:FF=0:TM=1440382592:LM=1440382592:V=1:S=5ToXkoBHyK2BAjyf; expires=Thu, 31-Dec-2015 16:02:17 GMT; path=/; domain=.google.com
Set-Cookie: NID=70=VKM1D8HeCMlye1YjMDYSqPlyIpPHKkitAor--wiqYznamENfNig69ZBW5oBgIR7wOFzVaUB6i4WKj-tqa2WcqbOCeVTc0hB4xQWQzBxpNazPp_20dBiU4in0wIop8mhz; expires=Tue, 23-Feb-2016 02:16:32 GMT; path=/; domain=.google.com; HttpOnly
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding

2つのヘッダーが返されることに注意してください。

  • HTTP/1.1 301 Moved Permanently
  • HTTP/1.1 200 OK

これは、Apacheサーバーのテストだけでなく、デバッグにも役立ちます mod_rewrite 書き換えルールなど。

このcurl -I -Lメソッドは、ChromeまたはFirefoxのようなビジュアルブラウザを使用するよりもはるかに便利で効率的です。これらのプログラムは、コンテンツをキャッシュすることによって閲覧速度を最適化するように設計されているためです。つまり、 Apacheサーバーを1秒で調整しますが、キャッシュをクリアするか、ページを数回強制的にリロードしない限り、ビジュアルブラウザは必ずしも変更をすぐに表示するわけではありません。curl -I -Lは、サーバーの内容を正確に示します瞬間はあなたの要求に応じてやっています、それはまさにサーバー構成をデバッグするときにあなたが望む/必要とするものです。

7
JakeGould

必要なコマンドはcurlまたはwgetです(個人の好みによります)。これらのコマンドは、サーバーにHTTPリクエストを送信します。ページ全体のロードのシミュレーションには適していません(デフォルトでは、HTMLページが参照するアセットをロードせず、JavaScriptを実行したり、ページを操作したりすることはできません)が、あなたが進歩した何かを求めているようには聞こえません。したがって、curlまたはwgetはほぼ間違いなく正常に機能します。

6
womble

@wombleは正しいです。ただし、curlまたはwgetがない場合は、telnetを使用できます。

telnet x.x.x.x 80
GET /directory/index.php HTTP/1.1
Host: x.x.x.x

次にヒット Enter もう一度(ヘッダーの終わりに)、生のHTMLを取得します。ヒットする必要があるかもしれません Ctrl+D (UNIX)または Ctrl+Z (Windows)サーバーがキープアライブを使用している場合に終了します。

3
cxw

OpenSSLを使用してGETリクエストを発行できます。

openssl s_client -quiet -connect cdn.sstatic.net:443 <<eof
GET /stackexchange/js/universal-login.js HTTP/1.1
Connection: close
Host: cdn.sstatic.net

eof

「HTTP/2」を使用することもできますが、一部のサーバー(github.comなど)ではサポートされていないので注意してください。

2
Steven Penny

テキストベースのブラウザを使用することもできます。このオプションを使用すると、Webページをトラバースし、そのコンポーネントをさらにテストできます。たとえば、本格的なブラウザなので、フォームのようなものです。

lynx、またはその弟links、またはelinksを使用します。

2
Tośka

実際にページを表示したい場合は、マイケルハンプトンの推奨事項の1つであるLynxを使用することをお勧めします。 HTMLをレンダリングし、キーボードを介してページを操作できます。派手なアニメーションや写真を期待しないでください。 :)

Mac OS Xに含まれているものを含め、実質的にすべてのパッケージマネージャーから利用できます。

0
phoenix