前半でHTTPによるWebサーバの動作を理解するための基本的な事前知識を整理して理解します。そして、後半にそれらの知識を元にC++による簡易なHTTPサーバをフルスクラッチで実装して理解します。 今回はリクエストされたテキスト形式のHTMLを返すだけのサーバを実装します。 ブラウザからhttp://127.0.0.1:5000とアクセスすると用意されたテキストのHTMLファイルをパースしてHello, world!とだけ出力する以下のような画面が表示されるサーバとなります。 HTTPにはこれまで以下のようなバージョンが存在しています。 HTTP 0.9 HTTP 1.0 HTTP 1.1 HTTP 2 最近ではHTTP2の普及が進んていっていますが、現在はHTTP 1.1が広く使われています。 仕組み Webでは、クライアント/サーバのアーキテクチャを取っており、クライアントがリクエストを
目的 HTTP Server API を使用すると、アプリケーションは Microsoft インターネット インフォメーション サーバー (IIS) を使用せずに HTTP 経由で通信できます。 アプリケーションは、特定の URL の HTTP 要求の受信、HTTP 要求の受信、HTTP 応答の送信に登録できます。 HTTP Server API には SSL サポートが含まれているため、アプリケーションは IIS なしでセキュリティで保護された HTTP 接続を介してデータを交換できます。 また、I/O 完了ポートを操作するように設計されています。 対象となる開発者 この API は、C/C++ プログラマが使用するように設計されています。 実行時の要件 HTTP Server API は、Windows Server 2003 オペレーティング システムと Windows XP Ser
Socketモジュールを使ったHTTP通信 python3のsocketモジュールを使った、HTTP通信の簡単な例 HTTPは簡単に言うと、HTMLファイルをTCP通信(TCPとは限らない)で送ったりするために、本来はどんなデータでも良いTCPのデータの部分(TCPペイロードとか言う)に対してルール(データはこのフォーマットに従ってくださいという)を作ったわけだから、recv,sendでそのフォーマットに従ったデータを送れば良い。 ここでは、RFC7230,RFC7230日本語訳を読みながら進める。 ※HTTP通信とは「HTTP」と呼ばれるお約束事に従って行われる通信のこと。だそうです。 スタートライン(start-line)とヘッダ節(header-section) スタートラインについて start-line HTTPメッセージはクライアントからサーバーへのリクエストとサーバーからクラ
PythonでのSocket通信やってることはCでやったときと同じである。サーバーとクライアントの通信手順は同じだし、関数名も同じである。しかしCで書いた場合に比べてシンプルに書ける。エラーは例外として投げられるため、自分で書く必要がない。またsockaddr_inなどの構造体が登場することはなく、Pythonでのbind関数とconnect関数の引数に直接アドレス・ポートを指定する。 server.py前回と同じく、以下の手順で通信を行う。 listen(待ち受け)用のソケット作成 - socket「どこからの接続を待つのか」「どのポートにて待ち受けするのか」を決める - bind関数の引数ソケットにその情報を紐つける - bind実際に待ち受けする - listen接続要求が来たら受け入れる - accept4によって通信用のソケットが得られるので、それを用いてデータのやりとりをする-
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く