は:
ハイパー テキスト転送プロトコル (HTTP) は、通常 TCP 上で動作する単純な要求/応答プロトコルです。クライアントがサーバーに送信できるメッセージの種類と、クライアントが取得する応答の種類を指定します。リクエストおよびレスポンスメッセージのヘッダーは ASCII 形式で与えられます。[9] メッセージの内容は MIME のような形式です。この単純なモデルは、開発と展開を非常に簡単にしたため、Web の初期の成功に貢献しました。
JavaSE の基礎を学んだ人は、ネットワーク プログラミングに精通しているはずです。
もちろん、そうでなくても大丈夫です。良心的な著者の話を聞いて、
2022 年の今日のコンピューター
について説明します。
電子メール、友人とのインスタント メッセージ、短いビデオ エンターテイメントなど、ネットワークは人々の日常生活の必需品となっています。コンピュータ ネットワークを介して複数のコンピュータを接続できると言えます。
コンピュータネットワークは、伝送媒体、通信設備、ネットワーク通信プロトコルを介して複数のコンピュータ装置をネットワーク上に接続し、リソースの共有とデータ伝送を実現します。
ただし、同じネットワーク上のコンピュータが接続して通信する場合、コンピュータ ネットワークでは、接続と通信に関するこれらの規則をネットワーク通信プロトコルと呼びます。
ここで説明している http プロトコルは、tcp に基づいて実装されています。一般的な http アプリケーション シナリオでは、ブラウザにアドレスの文字列を入力し、Web ページを返します。
1.2. IP アドレスとポート番号
ネットワーク内のコンピュータが通信できるようにするには、この識別番号を使用してデータを受信するコンピュータまたはデータを送信するコンピュータを指定することができます。
LAN 上のコンピュータの IP アドレスを確認します。Windowsコンピュータで WIN+R を押し、「cmd」と入力して、コンソールの
ipconfig に入ります。
IP アドレスを使用して指定したコンピュータに接続できますが、ターゲット コンピュータ上のアプリケーションのいずれかにアクセスする場合は、ポート番号も指定する必要があります。
たとえば、MySQL の 3306、TomCat の 8080
Node.js は http モジュールを提供します。http モジュールは主に HTTP サーバーおよびクライアントの機能を使用するために使用されます。
2.1、厚い蓄積 (詳細な紹介、使用されるオブジェクト メソッドの詳細な紹介、http サービス構築プロセス全体)
プロセスの紹介:
最初に createServer() メソッドを使用してサーバー オブジェクトを登録し、
次にこのサーバー オブジェクトを使用して on( ) メソッドを呼び出して、イベントを監視および処理します。listen
() メソッドを呼び出してポート番号をバインドし
、開始します。
ネットワーク サービス アプリケーションは常に最初にサービス オブジェクトを作成します。 nodeJS では、createServer メソッドを使用してこれを実現できます。
// 最初に http モジュールをインポートします const http = require('http'); // http サービス オブジェクトを作成する const server = http.createServer();
createServer コンストラクターによって返される Server オブジェクトは、独自の on() メソッドを使用して処理するために使用されます。処理。このようにして、http リクエストが送信されるたびにそれを処理できます。
// まず http モジュールをインポートします const http = require('http'); // http サービス オブジェクトを作成します const server = http.createServer(); // イベントをリッスンするバインドサーバー.on('request', (リクエスト, 応答) => { //必ず良いことが起こると信じてください! });
前に (IP アドレス + ポート) を紹介しましたが、コンピューターがインターネットに接続されている場合、ルーターは DHCP を通じて自動的に IP アドレスを割り当てますが、コンピューター上の指定されたプログラムにアクセスするには、次のようにする必要があります。ポート番号もあります。
コンピューター上の指定されたプログラムにアクセスするには、listen() メソッドを使用する必要もあります。必要な作業は、server.listen() を使用して、ポート番号をパラメータとして listen メソッドに listen ポートとして渡すことだけです。
// まず http モジュールをインポートします const http = require('http'); // http サービス オブジェクトを作成します const server = http.createServer(); // イベントをリッスンするバインドサーバー.on('request', (req, res) => { // この関数の内容は、プログラムをよりわかりやすく実行するための res パラメータへの小さな呼び出しです // 応答ヘッダーを書き込みます (書かないとブラウザは認識しません) res.writeHead(200,{'Content-Type':'text/html;charset=UTF8'}); // 応答データを送信します res.end("<h1>node.js を使用してサービスを構築することへようこそ</h1>"); }); //ポート番号をバインドします。server.listen(8888); // コンソールは、簡単なデバッグを容易にするためにアドレスを出力します。 console.log('http サービスは http://127.0.0.1:8888/ で開始されます');
コード実行デモンストレーション:
上記のコードのデモは非常に詳細ですが、実際の開発では、ステップバイステップで記述することはお勧めできません。
次に、作成者に従って、コードをより強力かつ簡潔にするために最適化を続けてみましょう。
2.2、細い髪 (ミニマリズムが王様)、とてもエレガントです)
オブジェクトを段階的に登録するプロセスは非常に面倒です:
const http = require('http') という小さくて美しいメソッドを使用します。
); const サーバー = http.createServer(function(req,res){ //常に良いことが起こると信じてください}).listen(8080);
HTTP リクエストがサーバーに到達するたびに、createServer に渡された関数が自動的に実行されます。したがって、この機能はリクエスト処理機能とも呼ばれます。イベントリスニングのコールバック関数を直接渡し、listen() メソッドをクリックしてポート番号を直接バインドできます。
しかし、これでは不十分です。上記のコールバック関数をアロー関数で変更すると、より美しくなります。
const http = require('http'); const サーバー = http.createServer((req,res) => { //良いことが起こると常に信じてください}).listen(8080);
もちろん、
これだけで
は十分ではありません。
もっと良くなる可能性があります!
直接 createServer() ですべてを解決します:
var http = require('http') // サーバーを作成 http.createServer( (req, res) =>{ //良いものが送られようとしていると常に信じてください}).listen(8888);この時点で、
リッスンのスキルを習得しました
。引き続き作者をフォローしてください。次に、