何だかよく分からない

あるプロジェクトで、ハード担当が全くハード選定をやらないので、わしはPCとlinuxを使って、ソフト実験環境を作ってしまっているのだが、時折、「こんなんできました」みたいなメールを送っている。

それについて、ハード担当が、メールで返事を返して来て、「ネットワークについてはよく分からないから教えて欲しい」などと言ってきた。

しかし、具体的に何が分からないのかも書いておらず、そもそも何が分からないのかすらさっぱり分からない。

わしのやってる事は、socketオープンして、サーバのapacheにコネクション張って、

GET /test.php?param=1234

みたいな文字列を送出して、apacheが応答して来た文字列をsscanf()で読み取ってるだけだ。

一言で言えば、「HTTPで通信しています」で終了。

別に秘密の独自プロトコルを使ってる訳でもないし、HTTPの仕様なんて全世界に公開されてるし、解説してある文献も腐るほどある。

そもそもこういうソフトウエアのアプリケーションレヴェルの話は、プロジェクト的には、ソフト担当のわしが握る事になるから、ハード担当が気にしたってしょうがない話だが、知りたがる理由がそもそも不明だ。

下衆の勘繰りで考えると、このネタを別の案件で使いたいのか?と思ったりするのだが、さすがにこの辺の話は、「スクリプトをパクって自分のホームページに組み込んだら、よく分からないけど何とかなった」というレヴェルの話じゃない。

強いて解決法を挙げると、

プログラミング言語Cとか、Linuxの本とか、マスタリングTCP/IPとか、そういう本を全部読んで理解した上で質問して来てくれという感じ。

もっとも、これだけの本を読んで理解できているなら、「HTTPで通信しています」で分かるはずだから、質問すらして来ないだろうけど。

あと、こういう事も書いてあった。
「また、自分のWEBサーバー上でデータベースMYSQL等の操作も、実験していますが、良く理解できていません」

知らんがな(´・ω・`)

apacheの不思議

proxyを動かそうと思い、

sudo a2enmod proxy proxy_http proxy_ftp proxy_connect

とかやって、

/etc/apache2/mods-available/proxy.conf で

と設定したが、ブラウザのproxy指定でlocalhostと指定すると、Access deniedとか言われる。

とやって、proxy設定を127.0.0.1とやるとOK。

noizumi@bluewolf:~$ nslookup localhost
Server:        192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:    localhost
Address: 127.0.0.1

だし、別におかしいところは無いとは思うが、

noizumi@bluewolf:~$ telnet localhost 80
Trying ::1…
Connected to localhost.
Escape character is ‘^]’.
GET http://www.noizumi.org/

だと、デナられる。

noizumi@bluewolf:~$ telnet 127.0.0.1 80
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]’.
GET http://www.noizumi.org/

127.0.0.1の指定だと何ともない。

WHY?

で、今結果を見ていてハタと気がついた。

答えは /etc/hosts の中にあった。

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback

ipv6か。
ipv4の localhost とipv6の localhost は別物なのねん。