• ベストアンサー

HTTP通信のお勉強。。。?

こんにちは。よろしくお願いします。 勉強をしたいのだけれどもどこらへん何だろう。。。とちょっと漠然としている感じなのでアドバイスをいただけませんでしょうか。 今現在、ASPを利用して既存のWebシステムから、別の既存のWebシステムへのデータの移行システムの解析と改版を行っています。 ASPのBASP21のソケット通信を使って、HTTP通信~でデータのやり取りを行っているようなんですが。。。 どこから手をつけていいのかさっぱり~。という状態です。 HTTP通信の決まりごとのあたり使っているからそこら辺見て作ったんだよ~。などと、そのシステムを作った人にはアドバイスもらったのですが。。。 いろいろと探していて http://www.rsch.tuis.ac.jp/~nagai/SYS/SYS02.html のようなページは見つけたのですが、他になかなか見つかりません。 かなりトンチンカンな質問ですみませんが、ここらへんかな?程度の見当がつく方などがいましたらアドバイスをいただけませんでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

 状況を推察するに、 1.AシステムとBシステムの2つのWebシステムがあり、どちらもMicrosoft ASPで作成されている。 2.AシステムからBシステムへ、BASP21のソケットクラスを使い、HTTP接続を行ってデータのやりとりをしている。BからAへかも知れない。  あくまで推測だが、AシステムがHTTPを使ってBシステムのASPをキックしているのでしょうね。  とりあえずHTTPリクエストとレスポンスがどんなもんか理解するのが第一歩ってところか。  そのあたりはRFC2616で検索し、まずはRFCを斜め読みしていただきたい。そうしつつtelnetで既存のHTTPサーバに接続してみると良いでしょう。 $ telnet httpd-machine-ip-address 80 GET /index.html <enter>    ←HTTP 0.9で接続 $ telnet httpd-machine-ip-address 80 GET /index.html HTTP/1.1 <enter><enter>    ←HTTP 1.1で接続(この要求は失敗する)

STICKY2006
質問者

お礼

こんにちは。回答ありがとうございます。 説明が的確でなく申し訳ないです。 >>1.AシステムとBシステムの2つのWebシステムがあり、どちらもMicrosoft ASPで作成されている。 AシステムとBシステムは、市販で販売されているWebシステムのグループウェアです。 実際にデータの転送を行っているのがCシステムで、Aシステムからデータを引っ張り出し、Bシステムに送りつける処理を行っています。 その際にBASP21のソケットのReadとWriteが行われていて、その際の送信データ変数がHTTP通信の文になっているようです。 >>2 こちらが今後やりたいことに近いです。 現状が「AからBへ」ですが、今後、「BからA」へや「AからD」などを行いたく解析の最中です。 >>HTTPリクエストとレスポンスがどんなもんか >>RFC2616で検索し、まずはRFCを斜め読み >>telnetで既存のHTTPサーバに接続 ヒントありがとうございます。 早速調べてみたいと思います。 ありがとうございました。

その他の回答 (1)

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.1

そのシステムには仕様書は無いのでしょうか? まともなシステムならきっちりと仕様書を作成してあるはずです。 無いのであれば、手抜きと言わざるを得ません。 通常、仕様書を見ながら、ソースを追っていけばすぐに把握できると思います。 その時に、コンポーネントとしてBASP21を使用しているとのことなので、 その解説も見る必要があると思います。 開発者が居るのであれば、引継ぎとして詳細に説明を受けるべきだと思います。 もし、仕様書が無くても、それだけでも何とかなるかもしれません。 その前に、プログラミング自体の勉強をしたいということであれば、 開発環境やどんなシステムかわからないのですが、下記サイトなんかが役に立つかもしれません。 http://www.atmarkit.co.jp/fdotnet/aspnet/index/index.html BASP21の解説は本家サイトにあります。 http://www.hi-ho.ne.jp/babaq/basp21.html

STICKY2006
質問者

お礼

こんにちは。回答ありがとうございます。 仕様書が。。。ないんですよね(汗 仕様書がない状態のシステムを解析して、それを改版するようなプロジェクトです。。。 システム自体は社内の誰かが作ったもの~なんですが、その社内が広すぎて。。。 個人利用程度~小規模利用程度のシステムを大人数利用用に改版するような作業してます。 なので、仕様書自体あるかどうかも不明なシステムも手がけている状況です。 解析の最中に、現状の仕様書を作成してから、改版時にそれを直して。。。って作業も同時に行っているような状況です。 >>通常、仕様書を見ながら、ソースを追っていけばすぐに把握できると思います。 正直、まだそれが経験できていないのでイマイチ感覚でつかめないです。 プログラム自体の勉強は高校から始めたので6年ほど経ってはいるのですが、入社して2年目、いろいろと異動などもあって実際のプログラマとしての作業に入ったのが今年から~ぐらいです。 まぁ。。。途中は省きまして、自分で理解できているのが、画面設計書やDBのテーブル設計書など、まだ若干で。。。 「仕様書を見てソースを追えば分かるのか」という実感がイマイチなく。。。 と、なんにしても泣き言を言ってる場合じゃないですよね。 参考アドレスありがとうございます。 BASP21の方の解説はそのつど読んでいます。 @ITの方を読み込んでみたいと思います。残念ながら「.net」での開発環境ではないので他の「ASP」の連載記事を探してみたりしてみたいと思います。 ありがとうございました。

関連するQ&A

  • 「XML over HTTP」「非同期HTTP」 とは何かご教示下さい。

    「XML over HTTP/HTTPS」「非同期HTTP」 とは何か、識者様にご教示いただきたいと思います。 私は会社内の情報システムの開発・企画担当ですが、今回外部会社と「XML over HTTP/HTTPS」(恐らくHTTPS)を使用してデータ(XMLによるtag付きデータ)送受信する業務を開発します。 以前HTTP手順のPOSTメゾットを使用して外部会社へデータを送受信する業務を開発した経験があるのですが、そもそも「XML over HTTP/HTTPS」が何であるか、どんな特徴があって、使用するにはどこがポイントなのか、何を気をつければ良いのか、Webを漁ってみてもこれといった説明が見つかりません。 また「HTTPはレスポンス/リクエストが一対になった同期通信ではないのか?」と質問した際「XML over HTTP/HTTPSは非同期HTTPだから」と返されて、ますます混乱しています。これはHTTP1.1の「パイプライン」に関係するものなのでしょうか? ※もし良い書籍・技術書の類があれば教えて頂けると幸いです。

    • 締切済み
    • XML
  • LinuxでWebメール

    社内グループウェアをOS:Windows 2003、ASP.NETで開発しています。 掲示板、ニュースなどは問題なく作れましたが、 Webメール機能はBASP21に頼りました。 今回、サーバをLinuxに変更するということで 既存の資産をそのまま使えないかというところで 悩んでいます。 Linuxは未経験で、Monoを使えばASP.NETも動作出来そうなことが 分かりました。 WebメールについてはBASP21がLinuxでの動作が保障されていませんので 使えません。 Linux環境でBASP21のようにメール機能を実装したコンポーネントは 無いでしょうか?

  • 透過型プロキシのHTTPS通信

    現在,自作の透過型HTTP/HTTPSプロキシを開発中です. プロキシとしての動作は単にクライアント・サーバ間のデータ受け渡しを行うだけなのですが,現在,透過型の実現で困っております. 透過型の実現には,iptablesを利用し,宛先ポート80番のデータの宛先ポート番号を3128番(本プロキシ)に変換し,本システムにデータを送信しています.HTTPの場合はこれで問題ないのですが,HTTPSの場合が問題です. HTTPSの場合はSSLハンドシェイク等,通常のHTTPとは違う手順を行わなければならないので,HTTP,HTTPSどちらで通信するのかをあらかじめ知る必要があります. クライアントのWebブラウザでプロキシの指定を行う場合(透過型ではない)のHTTPS通信は,クライアントからCONNECTリクエストが実行された場合のみ,HTTPS通信処理へ分岐させればいいのですが,透過型の場合は,クライアントからそのメソッドが実行されず,さらにiptablesによって宛先ポート番号も3128番に書き換えられているため,HTTP通信なのかHTTPS通信なのかを判別することができません. これを実現するためには,どのような方法があるのでしょうか? 透過型プロキシでHTTPS通信をサポートする製品(Webフィルタリングソフト等)はたくさん存在しているため,実現は可能だと考えられるのですが,どのように実現されているのでしょうか? 考えられるひとつの方法としては,HTTP用を3128番,HTTPS用を3129番ポートで実行しておいて,iptablesで80ならば3128,430ならば3129等と振り分ける方法が挙げられますが,どうでしょうか. よろしくお願いいたします.

  • iアプリとwebサーバーの通信

    はじめまして。 私、現在FeliCaチップ対応携帯のiアプリで認証システムを開発しているのですが、web系の開発経験がありません。(java、asp等の開発経験がありません。) そこで、iアプリとwebサーバーの通信について、お分かりの方がおられましたら教えて頂きたいと思い質問させて頂きました。 まず、環境ですが、 携帯側:Doja4.1、java2sdk1.4.2 webサーバー:windows2003server IIS6.0+asp.net になります。 次に通信手順ですが以下のようになります。 1.携帯側よりwebサーバーへ「会員番号」と「パスワード」を送信。 2.webサーバー側で認証処理を行う。 3.webサーバー側より、認証結果と会員情報(会員ポイント、有効期限、会員の画像等)が携帯へ送信される。 (但し、認証エラーの場合は、認証結果のみ携帯へ送信。学生情報は送信しない。) 4.携帯側で受け取ったデータをスクラッチパッドへ書き込みする。 となります。 ここで質問ですが、 1.上記手順1~4の通信を1回で完了させるのはよくないと思います。そこで、セッション管理が必要と思うのですが、どのようにすればいいのでしょうか? 2.webサーバーから携帯へデータを送信する場合、携帯電話側はどのようにして通信を開ければいいのでしょうか? (webサーバー側の要求を感知して通信を開くのでしょうか?) またweb側はどのようにして携帯へ通信の要求を発行すればいいのでしょうか? 出来れば参考になるソース等を提示して頂ければ非常にうれしいです。 よろしくお願いします。

  • プロセス間通信について

    VisualBasic2005にてプログラムを作ったのですが、作ったあとに別のPCにインストールして実行してみると動作しないことに気づきました。 プログラムの内容は、Aというプログラムに引数をつけて実行すると常駐プログラムBに引数の値を渡すというシンプルなものです。AとBは同じクライアントPCにて実行します。 「VB2005逆引き大全500の極意」という書籍のプロセス間通信という産プルを参考に作ったのですが、どうもHTTPでデータを渡しているらしくWEBサーバが動作していないと動作しないんです。 私のPCはPHPなども使う為Apacheが動作中です。 通常のクライアントにHTTPでの通信を受信する方法はないのでしょうか?(ApacheなどのWEBサーバをインストールしないで) クライアントPCには.net Framework2.0がインストール済みです。 OSはWindowsXP(Home,Pro双方) どなたか分かる方、ご教授お願いします。

  • http通信について

    環境はASP.NETです。 aspxファイルですが、 現在、同じURLを直接ブラウザに打ち込むと正常に動くのですが <form>のactionに同じURLを埋め込んでsubmit()すると、 情報が足りないのか、何かがおかしくなるのか、 システムが正常に動きません。 <form>のactionでURL(GETデータ付)を指定してsubmit()した場合と ブラウザに直接、URLを打ち込んだ場合とでは どこが違ってくるのでしょうか? どなたかアドバイスお願いいたします!

  • すでに存在しているJAVA WEBシステムの環境に、ASP.netシス

    すでに存在しているJAVA WEBシステムの環境に、ASP.netシステムを追加ししたいのですが、問題なく動くのでしょうか? ご教授下さい! ---------------- 既存環境 「サーバー環境」 OS:Windows Server 2008 DB:SQL Server 2008 ウェブサーバー:Tomcat6.0 ---------------- 以上の環境の中にASP.netウェブシステムを追加することを考えて いますが、どのような問題が発生するのでしょうか? 色々調べてみましたが全く分からないので困っています。 ご教授下さい!お願いします。

  • ASP.NETとcgiについて

    ASP.NET上でwebシステムが構築されています。 ブラウザ(既存webシステム:以降Aシステム とします)で、ボタンをクリックすると、 ログイン画面が表示され、別のwebシステム(以降:Bシステム)が動きます。 ※因みに、login.aspxが動いていたので.NETですよね? ---ここまでは既存システム--- このAシステムからBシステムの間のやり取りを .NETではなく、vc++などでcgiを作って動きますか?(拡張子はexeになります) .NETは経験が無いので、実現可能か教えていただきたいのです。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • Webシステムで文字化けが発生し困っています。

    Webシステムで文字化けが発生し困っています。 WWW:IIS+ASP データベース:postgresql 7.4.3 データベース(別サーバ:Linux)には、utf-8でデータが格納されています。 それを、WWWサーバ(windows2000Server)上のASPから、odbc経由で参照しようとすると、文字化けが発生します。 下記の方法を試しましたが駄目でした。 1)basp21のkconvを利用 2)metaタグに、utf-8と記載。  (ファイル自体のエンコードもutfにした) 1)2)のやり方が悪いのか?他に問題が有るのか?お分かりになる方、どうぞ、よろしくお願い致します。

  • BinaryWrite サーバ間ファイル書き込み

    こんにちは。よろしくお願いします。 ASPでBASP21のソケットオブジェクトを利用して、がちょがちょやってる最中です。 1.クライアントからサーバAのWebページへアクセス。 ↓ 2.アクセスすると、サーバAの別ページをソケットで繋げて、データを受信。 ↓ 3.受信したデータをテキストファイルの中に書き込み、ファイル保存。 そんな感じの機能を作りこんでいる最中です。 大体思い通りになってはいるのですが。。。 3番で少し詰まっています。 「3.ファイル保存」を、サーバBに対して行ないたいのですが、すんなり出来ませんでしたっけ? FileSystemObjectのCreateTextFileは、サーバまたぐと無理みたいだし、 BASP21のBinaryWriteで実現できたような記憶が無きにしも非ずなのですが、「あれ?出来ないぞ?」 となっておりまして。。。 ================================================== Set bobj = Server.CreateObject("basp21") Set bsocket = Server.CreateObject("basp21.socket") rc1 = bsocket.Connect("hogehoge.co.jp", 80, 180) host = "Host: hogehoge.co.jp" & vbCrLf rc1 = bsocket.write ("GET /system/hogehoge.asp?para=abc HTTP/1.0" & vbCrLf & host & vbCrLf) ヘッダ読み飛ばし(略 rc1 = bsocket.read(datax,1) rc1 = bobj.BinaryWrite(datax, "●●●●") ================================================== ●●●●箇所を サーバAのフルパスならもちろん問題なし。 「D:\hogehoge.txt」 サーバAのネットワークパスならアウト。 「\\hogehoge_a\drv_d\hogehoge.txt」 サーバBのネットワークパスもアウト。 「\\hogehoge_b\drv_d\hogehoge.txt」 サーバBのネットワークドライブを切ってもアウト。 「V:\hogehoge.txt」 。。。やっぱ、サーバ間またいでファイル保存ってこのままじゃ出来ませんでしたっけ? あんまり粘る時間も無いので、「4.仕方ないから、サーバAからサーバBにファイルをコピーする」 処理でも作ろうかどうしようか悩んでいるところです。 すみませんが、アドバイスのほどよろしくお願いしますm(_ _)m

専門家に質問してみよう