HTTP モジュールを深く理解することができます。
この記事は、http モジュールについて学び、インターフェイスを作成するための基礎を築くのに役立ちます。お役に立てば幸いです。
#1. Web サーバー
Web サーバーとは何ですか?
アプリケーション (クライアント) は、特定のリソースが必要な場合、サーバーへの HTTP リクエストを通じてリソースを取得できます。リソースを提供するサーバーは Web サーバーです。
1.1 サーバーの初めての体験
##1.2 サーバーを作成する 2 つの方法
http.createServer はサーバー オブジェクトを返します- 最下位層は実際には直接の新しいサーバー オブジェクトを使用します
1.3 リクエスト オブジェクト
#リクエスト オブジェクトは、クライアントからサーバーに渡されるすべての情報をカプセル化します
- このリクエストの URL、サーバーは URL に応じて異なる方法で処理する必要があります;
- このリクエストのリクエスト メソッド (GET で渡されるパラメータなど)および POST リクエストの処理方法は異なります;
- このリクエストのヘッダーには、クライアント情報、データ受信形式、サポートされているエンコード形式などの情報も含まれます...
- 一般リクエスト:
##1.3.1 request-url
クライアントがリクエストを送信すると、さまざまなデータがリクエストされ、さまざまなリクエスト アドレスが渡されます。サーバーは、さまざまなリクエスト アドレスに基づいてさまざまな応答を行う必要があります。
ユーザーのリクエスト アドレスに追加のパラメーターも含まれている場合、それをどのように解析すればよいでしょうか? url モジュールを使用できます。 その中で、url モジュールは URL の処理と解析のための実用的なツールを提供しますImport url const url = require('url')リクエスト データが次のとおりであると仮定します。
コンソールによる URL の解析結果は次のとおりです。
パス名は、取得する必要がある最終パスです。私たちの目的は、クエリでユーザー名とパスワードを個別に取得することです。
const qs = require('querystring');
const http = require("http")const url = require('url')const qs = require('querystring')// 1. 创建服务器const server = http.createServer((req, res) => { // 使用内置模块 const{ pathname,query } = url.parse(req.url) if(pathname === '/login'){ console.log(query); console.log(qs.parse(query)); const { username, password } = qs.parse(query) console.log(username,password); res.end('请求结束') }});// 2. 设置端口号并启动服务器server.listen(8888,'0.0.0.0',()=>{ console.log("服务器启动成功~");})
✅コンソール出力結果:-
#1.3.2 request-method
GET: データのクエリ;
POST: 新しいデータの作成;
- PATCH: データの更新;
- DELETE: データの削除
- リクエストメソッドの違いを判断して、異なる処理を行うことができます。
- 以下が本文内の JSON リクエスト データであると仮定します。> サーバーにユーザー名とパスワードを取得させるにはどうすればよいでしょうか?
##✅コンソール出力
- 1.3.2 request-headers
##content-type は、このリクエストで伝送されるデータのタイプです:
application/ json は json 型を意味します;
text/plain はテキスト型を意味します; application/xml は XML 型を意味します;
- multipart/form-data ファイルのアップロードを示します。
- **content-length: **ファイルのサイズと長さ
- keep-alive:
-
- http は TCP プロトコルに基づいていますが、通常、リクエストと応答の直後に中断されます;
- http1.0 では、接続を維持し続けたい場合: ①ブラウザには次の要求があります。要求ヘッダーに接続を追加: keep-alive; ② サーバーは応答ヘッダーに接続: key-alive を追加する必要があります; ③ クライアントが再度要求を行うと、同じ接続が使用され、直接の当事者が接続を中断します。 connection;
- http1.1 では、すべての接続はデフォルトで connection: keep-alive になります: ① Web サーバーが異なればキープアライブ時間も異なります; ② Node のデフォルトは 5 秒です
##**user-agent: **クライアント関連情報;
1.4 応答オブジェクト
1.4.1 応答-応答オブジェクトクライアントに結果データで応答したい場合は、次の 2 つの方法で応答できます。
Write メソッド: このメソッドはデータを直接書き込みますが、ストリームは閉じません;
- end メソッド: このメソッドは最後のデータを書き込み、書き込み後にストリームは閉じられます;
- 注: end と close を呼び出さない場合、クライアントは結果を待ちます。
HTTP ステータス コード (HTTP ステータス コード) は、HTTP 応答ステータスを表すために使用される数値コードです。
HTTP ステータス コードは非常に多く、さまざまな状況に応じてさまざまなステータス コードがクライアントに返されます。一般的なステータス コードは次のとおりです (ステータス コードは後続のプロジェクトでも使用されます) )- http ステータス コード コレクション
##カテゴリ 情報 (情報ステータス コード) 承認されたリクエストの処理 #理由フレーズ1xx 2xx Success (成功ステータス コード) 3xx リダイレクト 4xx クライアント エラー #5xx サーバー エラー サーバーでリクエストの処理中にエラーが発生しました 一般的な応答コード: #説明 400##200 OKリクエストは成功しました。通常、GET および POST リクエストに使用されます 不正なリクエスト クライアント リクエストに構文エラーがあるため、サーバーは理解できません 401 Unauthorized リクエストにはユーザー認証が必要です 403 Forbidden 404 Not Found サーバーは、クライアントのリクエストに基づくリソース (Web ページ)。このコードを通じて、Web サイト デザイナーは、「要求したリソースが見つかりません」 #500 内部サーバー エラー サービスが利用できません用のパーソナライズされたページを設定できます。サーバー内部エラー、リクエストを完了できません #503 サーバーは、過負荷または過負荷のため、クライアントのリクエストを一時的に処理できません。システム・メンテナンス。遅延の長さはサーバーの Retry-After ヘッダー情報に含めることができます ヘッダー情報を返すには、主に 2 つの方法があります。 res.setHeader: 一度に 1 つのヘッダー情報を書き込みます; res.writeHead: ヘッダーとステータスを同時に書き込みます
#More ノード関連の知識については、nodejs チュートリアル を参照してください。
以上がHTTP モジュールを深く理解することができます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、NodeJS V8 エンジンのメモリとガベージ コレクター (GC) について詳しく説明します。

ノンブロッキングおよびイベント駆動に基づいて構築されたノード サービスには、メモリ消費量が少ないという利点があり、大量のネットワーク リクエストの処理に非常に適しています。大量のリクエストを前提として、「メモリ制御」に関する問題を考慮する必要があります。 1. V8 のガベージ コレクション メカニズムとメモリ制限 Js はガベージ コレクション マシンによって制御されます

ファイルのアップロードをどのように処理するか?次の記事では、Express を使用してノード プロジェクトでファイルのアップロードを処理する方法を紹介します。

ファイル モジュールは、ファイルの読み取り/書き込み/開く/閉じる/削除の追加など、基礎となるファイル操作をカプセル化したものです。ファイル モジュールの最大の特徴は、すべてのメソッドが **同期** と ** の 2 つのバージョンを提供することです。 asynchronous**、sync サフィックスが付いているメソッドはすべて同期メソッドであり、持たないメソッドはすべて異種メソッドです。

この記事では、Node のプロセス管理ツール「pm2」について説明し、pm2 が必要な理由、pm2 のインストール方法と使用方法について説明します。皆様のお役に立てれば幸いです。

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

イベント ループは Node.js の基本的な部分であり、メイン スレッドがブロックされていないことを確認することで非同期プログラミングが可能になります。イベント ループを理解することは、効率的なアプリケーションを構築するために重要です。次の記事では、Node のイベント ループについて詳しく説明します。お役に立てれば幸いです。

当初、JS はブラウザ側でのみ動作していたため、Unicode でエンコードされた文字列の処理は簡単でしたが、バイナリ文字列や非 Unicode エンコード文字列の処理は困難でした。バイナリは、コンピュータのビデオ/オーディオ/プログラム/ネットワーク パッケージの最低レベルのデータ形式です。
