この記事では、主に Node の HTTP コア モジュールについて詳しく説明します。これは、必要な友人に参照してもらえるようにしました
HTTP
接続をリッスンします。とリクエスト
var http = require('http'); var fs = require('fs'); var url = require('url'); var serverHandle = function(req, res) { var pathname = url.parse(req.url).pathname; // 对请求的url进行分析,取得pathname console.log(url.parse(req.url)); console.log(url.parse(req.url).pathname); // 消除favicon.ico影响 if (req.url !== "/favicon.ico") console.log(req.url); //消除/favicon.ico的影响 console.log(pathname); // 读取文件 fs.readFile(pathname.substr(1), function(err, data) { if (err) { console.log(err); res.writeHead(404, {"Content-Type": "text/html"}); } else { res.writeHead(200, {"Content-Type": "text/html"}); res.end(data.toString()); } }) }; var server = http.createServer(serverHandle); server.listen(3000); console.log('http is running at 127.0.0.1:3000');
接続とリクエストの違い
var http = require('http'); var server = http.createServer(); // 返回一个http.server实例 // 【一】 // 监听request事件,每接受到一个请求的时候触发 // 当服务端接收到客户端请求时,触发request事件,所以可以使用监听request事件的方式来代替createServer中的回调函数: server.on('request', function(req,res) { //接收到客户端请求的连接后代码部分 }) // 【二】 // 【监听客户端的链接】 // server.listen(port,[host],[backlog],[callback]); server.listen(3000,127.0.0.1); /* port: 监听的端口号,0表示为服务器随机分配一个端口号。 host: 监听的地址,默认为本机(localhost) backlog: 指定位于[等待队列中]的客户端连接的[最大数量]。超过此数量,则服务器拒绝新的客户端请求。 callback: 开启监听后触发的回调函数。当服务器开启监听后会触发listening事件,可以通过监听listening事件来代替callback回调函数。 */ server.on('listening', function(){ console.log('我监听连接,并且执行此回调函数!!'); })
リクエストを通じてクライアント情報を取得する
クライアントがサーバーに接続すると、サーバーは http.IncommingMessage
(コールバック) によってインスタンス化されたオブジェクトを渡すことができます。 createServer メソッドの最初のパラメーターの関数) を使用して、クライアントの要求情報を取得し、クライアントによって要求されたデータを読み取ります。
// 默认情况下,客户端与服务端每进行依次HTTP交互就进行一次连接,在HTTP1.1之后添加了长连接, // 如果在客户端发送请求头信息中或服务器发送的响应头信息中包含“Connection: keep-live”信息,则HTTP连接将继续保持。 // 当客户端与服务器建立连接时,会触发服务器对象的connection事件,可以通过监听connection事件来处理连接后的事情,此时回调参数为socket对象。 server.on('connection', function(socket) { console.log(socket); }) ** connection 和 request的区别 客户端与服务端每次建立连接的时候会触发connection事件, 当服务端接受到客户端请求的时候,就会触发request事件。发送请求是建立在双方已经成功连接的接触之上
* method: 客户端请求方式 * url: 请求的地址 * headers: 客户端发送的请求头信息 * httpVersion: HTTP请求版本 * trailers: 客户端发送的trailers对象信息。只有IncommingMessage对象的end事件触发后才能读取到该信息。 * socket: 服务器端监听客户端请求的socket对象。 * data事件: 当服务器接收到客户端发送的请求数据时触发data事件。 * end事件: 当客户端发送给服务器数据执行完毕时触发end事件。
var http = require('http'); var serverHandle = function(req,res) { console.log(req); req.on("data",function(data){ console.log("接收到的数据:"+decondeURIComponent(data)); }); req.on("end",function(){ console.log("数据接收完毕"); }); } var server = http.createServer(serverHandle); server.listen(3000); server.on('listening', function() { console.log('服务器启动中~~~'); })
クライアント情報に応答する http.IncommingMessage
实例化的对象(createServer方法中回调函数的第一个参数)的一些属性和方法来获取客户端的请求信息和读取客户端请求的数据。
// 一个简单的get请求,获取信息 var http = require('http'); var url = require('url'); var util = require('util'); var serverHandle = function(req,res) { var parse = url.parse(req.url,true).query; res.write('name'+ parse.name); res.write('url'+ parse.url); res.end(); } var server = http.createServer(serverHandle); server.listen(3000); server.on('listening', function() { console.log('服务器启动中~~~'); }) // http://localhost:3000/?url=123&name=321rrreeerrreee
响应客户端信息
利用http.ServerResponse
对象(createServer
方法或request
http.ServerResponse
オブジェクトを使用します (createServer
メソッドまたは request
イベント処理メソッドの 2 番目のパラメーター) to クライアントがデータを送信します。 上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。 関連する推奨事項:
🎜以上がNodeのHTTPコアモジュールの深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック









