目次
クライアントがリクエストを送信すると、さまざまなデータがリクエストされ、さまざまなリクエスト アドレスが渡されます。サーバーは、さまざまなリクエスト アドレスに基づいてさまざまな応答を行う必要があります。
GET: データのクエリ;
##content-type は、このリクエストで伝送されるデータのタイプです:
HTTP ステータス コード (HTTP ステータス コード) は、HTTP 応答ステータスを表すために使用される数値コードです。
#More ノード関連の知識については、nodejs チュートリアル を参照してください。
ホームページ ウェブフロントエンド jsチュートリアル HTTP モジュールを深く理解することができます。

HTTP モジュールを深く理解することができます。

Jun 09, 2022 pm 07:28 PM
nodejs​ node.js node httpモジュール

この記事は、http モジュールについて学び、インターフェイスを作成するための基礎を築くのに役立ちます。お役に立てば幸いです。

HTTP モジュールを深く理解することができます。

#1. Web サーバー

Web サーバーとは何ですか?

アプリケーション (クライアント) は、特定のリソースが必要な場合、サーバーへの HTTP リクエストを通じてリソースを取得できます。リソースを提供するサーバーは Web サーバーです。

1.1 サーバーの初めての体験

HTTP モジュールを深く理解することができます。

##1.2 サーバーを作成する 2 つの方法

http.createServer はサーバー オブジェクトを返します
  • 最下位層は実際には直接の新しいサーバー オブジェクトを使用します

HTTP モジュールを深く理解することができます。

1.3 リクエスト オブジェクト

#リクエスト オブジェクトは、クライアントからサーバーに渡されるすべての情報をカプセル化します

    このリクエストの URL、サーバーは URL に応じて異なる方法で処理する必要があります;
  • このリクエストのリクエスト メソッド (GET で渡されるパラメータなど)および POST リクエストの処理方法は異なります;
  • このリクエストのヘッダーには、クライアント情報、データ受信形式、サポートされているエンコード形式などの情報も含まれます...
  • 一般リクエスト:

HTTP モジュールを深く理解することができます。

HTTP モジュールを深く理解することができます。##1.3.1 request-url

クライアントがリクエストを送信すると、さまざまなデータがリクエストされ、さまざまなリクエスト アドレスが渡されます。サーバーは、さまざまなリクエスト アドレスに基づいてさまざまな応答を行う必要があります。

ユーザーのリクエスト アドレスに追加のパラメーターも含まれている場合、それをどのように解析すればよいでしょうか?

url モジュールを使用できます。

その中で、url モジュールは URL の処理と解析のための実用的なツールを提供します

Import url const url = require('url')

リクエスト データが次のとおりであると仮定します。


コンソールによる URL の解析結果は次のとおりです。 HTTP モジュールを深く理解することができます。

パス名は、取得する必要がある最終パスです。私たちの目的は、クエリでユーザー名とパスワードを個別に取得することです。 HTTP モジュールを深く理解することができます。

Import querystring module

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("服务器启动成功~");})
ログイン後にコピー
✅コンソール出力結果:

  • HTTP モジュールを深く理解することができます。#1.3.2 request-method
##Restful 仕様 (設計スタイル) では、データの追加、削除、変更、確認にさまざまなリクエスト メソッドを使用する必要があります:

GET: データのクエリ;

POST: 新しいデータの作成;

    PATCH: データの更新;
  • DELETE: データの削除
  • リクエストメソッドの違いを判断して、異なる処理を行うことができます。
  • 以下が本文内の JSON リクエスト データであると仮定します。> サーバーにユーザー名とパスワードを取得させるにはどうすればよいでしょうか?


HTTP モジュールを深く理解することができます。##✅コンソール出力

HTTP モジュールを深く理解することができます。

  • 1.3.2 request-headers
    HTTP モジュールを深く理解することができます。

##content-type は、このリクエストで伝送されるデータのタイプです:

HTTP モジュールを深く理解することができます。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 秒です
    # **accept-encoding: **クライアントがサポートしているファイル圧縮形式をサーバーに通知します。たとえば、js ファイルは .gz ファイルに対応する gzip を使用してエンコードできます

    **accept: **クライアントが受け入れ可能であることをサーバーに通知します ファイル形式タイプ;

    ##**user-agent: **クライアント関連情報;

    1.4 応答オブジェクト

    1.4.1 応答-応答オブジェクト

    クライアントに結果データで応答したい場合は、次の 2 つの方法で応答できます。

    Write メソッド: このメソッドはデータを直接書き込みますが、ストリームは閉じません;

      end メソッド: このメソッドは最後のデータを書き込み、書き込み後にストリームは閉じられます;
    • 注: end と close を呼び出さない場合、クライアントは結果を待ちます。
    #1.4.2 応答-応答コード

    HTTP ステータス コード (HTTP ステータス コード) は、HTTP 応答ステータスを表すために使用される数値コードです。

    HTTP ステータス コードは非常に多く、さまざまな状況に応じてさまざまなステータス コードがクライアントに返されます。

    一般的なステータス コードは次のとおりです (ステータス コードは後続のプロジェクトでも使用されます) )
    • http ステータス コード コレクション
    ##カテゴリ#理由フレーズ情報 (情報ステータス コード)承認されたリクエストの処理リクエストは正常に処理されましたリクエストを完了するには追加のアクションが必要ですクライアント リクエスト エラー、サーバーはリクエストを処理できません#5xxサーバー エラーサーバーでリクエストの処理中にエラーが発生しました ##ステータス コード

    1xx
    2xx Success (成功ステータス コード)
    3xx リダイレクト
    4xx クライアント エラー
    一般的な応答コード:

    #説明ステータス#説明OK400不正なリクエストクライアント リクエストに構文エラーがあるため、サーバーは理解できません401Unauthorizedリクエストにはユーザー認証が必要です403Forbiddenサーバーはクライアントからのリクエストを理解しましたが、リクエストの実行を拒否しました 404Not Foundサーバーは、クライアントのリクエストに基づくリソース (Web ページ)。このコードを通じて、Web サイト デザイナーは、「要求したリソースが見つかりません」#500内部サーバー エラー 用のパーソナライズされたページを設定できます。サーバー内部エラー、リクエストを完了できませんサービスが利用できませんステータス コードを設定します:##1.4.3 応答-応答ヘッダー
    ##200リクエストは成功しました。通常、GET および POST リクエストに使用されます
    #503
    サーバーは、過負荷または過負荷のため、クライアントのリクエストを一時的に処理できません。システム・メンテナンス。遅延の長さはサーバーの Retry-After ヘッダー情報に含めることができます

    ヘッダー情報を返すには、主に 2 つの方法があります。 res.setHeader: 一度に 1 つのヘッダー情報を書き込みます; res.writeHead: ヘッダーとステータスを同時に書き込みます

    HTTP モジュールを深く理解することができます。
    HTTP モジュールを深く理解することができます。

    #More ノード関連の知識については、nodejs チュートリアル を参照してください。

以上がHTTP モジュールを深く理解することができます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Node V8 エンジンのメモリと GC の詳細な図による説明 Node V8 エンジンのメモリと GC の詳細な図による説明 Mar 29, 2023 pm 06:02 PM

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

Nodeのメモリ制御に関する記事 Nodeのメモリ制御に関する記事 Apr 26, 2023 pm 05:37 PM

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

Express を使用してノード プロジェクトでファイルのアップロードを処理する方法 Express を使用してノード プロジェクトでファイルのアップロードを処理する方法 Mar 28, 2023 pm 07:28 PM

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

Node の File モジュールについて詳しく説明しましょう Node の File モジュールについて詳しく説明しましょう Apr 24, 2023 pm 05:49 PM

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

Nodeのプロセス管理ツール「pm2」を徹底分析 Nodeのプロセス管理ツール「pm2」を徹底分析 Apr 03, 2023 pm 06:02 PM

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

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

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

Nodeのイベントループについて話しましょう Nodeのイベントループについて話しましょう Apr 11, 2023 pm 07:08 PM

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

ノードのバッファーについて詳しく見る ノードのバッファーについて詳しく見る Apr 25, 2023 pm 07:49 PM

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

See all articles