HTTP サーバーとクライアントのやり取りをシミュレートする Node.js+postman

HTTP サーバーとクライアントのやり取りをシミュレートする Node.js+postman

アプリケーション (クライアント) が特定のリソースを必要とする場合、HTTP リクエストを通じてサーバーからリソースを取得できます。リソースを提供するサーバーは Web サーバー (この記事では node.js で作成) であり、サーバーにリクエストを送信するクライアントをシミュレートするために postman が使用されます。

ここに画像の説明を挿入

1. NodeがHTTPサーバーを構築する

httpモジュールは、 HTTP サーバーを作成するためにノードで使用されます。新しいリクエストが受信されるたびに、リクエスト イベントが呼び出され、リクエスト req (http.IncomingMessage オブジェクト) とレスポンス res (http.ServerResponse オブジェクト) の 2 つのオブジェクトが提供されます。

request はリクエストの詳細を提供します。 リクエスト ヘッダーとリクエスト データへのアクセスを提供します。 (クライアント→サーバー)

応答は、クライアント (サーバー -> クライアント) に返されるデータを構築するために使用されます。以下は単純な HTTP Web サーバーの例です。

以下は単純なHTTPサーバーの例です。

//http モジュールをインポート const http = require('http')

// http サーバーを作成する const server = http.createServer((req, res) => {
		// 成功した応答を示すために statusCode プロパティを 200 に設定します res.statusCode = 200
  		// res は基本的に stream.Writable クラスを継承します // 応答ヘッダーと本文をクライアントに送信した後、メッセージの送信が終了したことをサーバーに通知します res.end("hollow server")
        // res.writer("hollow server")+res.end() と同等
    })
    // サーバーを listen します。サーバーの準備ができたら、 listen コールバック関数が呼び出されます // コンソールに起動が成功したことが出力されます server.listen('8089', 'localhost', () => {
    console.log("起動に成功しました")
})

この時点でローカルサーバーがセットアップされ、ブラウザでlocalhost:8089を開いて表示することができます。

ここに画像の説明を挿入

2. HTTPサーバーがリクエストを取得する

Postman は、ほぼすべての種類の HTTP リクエストを送信できる、よく使用されるインターフェース テスト ツールです。 Postman は、Postman Mac、Windows X32、Windows X64、Linux システムなど、さまざまなオペレーティング システムに適しており、Postman ブラウザー拡張機能、Postman Chrome アプリケーションなどもサポートしています。

ダウンロードも非常に簡単です。ここをクリックして公式ウェブサイトに直接アクセスしてダウンロードできます👉👉👉Postmanをダウンロード

1. Postmanがgetリクエストを送信する

Postmanで新しいリクエストを作成し、上記でnode.jsで作成したHTTPサーバーのホストアドレスと、ユーザー名とパスワードhttp://localhost:8089/login?username=ahua&password=123 Enter request urlに入力し、リクエストタイプとしてGETを選択してSendをクリックすると、Postmanはサーバーにgetリクエストを送信します。

ここに画像の説明を挿入

2. サーバー分析

サーバーはクライアント(Postman)からのGETリクエストを受信し、送信されたデータを処理する。

定数 http = require('http')
    // URL を処理するためのモジュール const url = require('url')
    // クエリを処理するモジュール const qs = require('querystring')
const server = 新しい http.Server((req, res) => {
    // リクエスト オブジェクトは、クライアントからサーバーに渡されるすべての情報をカプセル化します // URL を解析します const { pathname, query } = url.parse(req.url)
    if (パス名 === '/login') {
        //console.log(クエリ)
            // qs の解析メソッドはクエリを処理できます // 文字列型を js オブジェクトに変換します username=ahua&password=123 --> {username: 'ahua',password: 123}
        //console.log(qs.parse(クエリ))
        const { ユーザー名、パスワード } = qs.parse(クエリ)
        console.log(ユーザー名、パスワード)
        res.end('リクエスト結果')
    }
    コンソールログ(req.url)
    //リクエストタイプを印刷 console.log(req.method)
    //リクエストヘッダー console.log(req.headers)
})
server.listen('8089', 'localhost', () => {
    console.log("サーバーが正常に開始されました")
})

サーバー側での分析結果

ここに画像の説明を挿入

3. HTTPサーバーがPOSTリクエストを処理する

1. Postmanが投稿リクエストを送信する

上記の get リクエストでは、ユーザー名とパスワードをアドレス バーに入力するだけでは安全とは言えません。アカウント パスワードをより慎重に扱うには、本文に入力し、json ファイルを使用してサーバーに送信します。

次の図は、Postmanがユーザー名とパスワードをjsonファイルに入れてbady経由でサーバーに渡す動作を示しています。

ここに画像の説明を挿入

2. サーバー分析

サーバーはクライアント (postman) からの POST リクエストを受信し、送信されたデータを処理します。まず、POST リクエストであるかどうかを判断し、次に本文のデータを取得して、データを解析する必要があります。

定数 http = require('http')
    // URL を処理するためのモジュール const url = require('url')
const server = 新しい http.Server((req, res) => {
    // クライアントから送信されたURLのパス名を取得します
    const { パス名 } = url.parse(req.url)
        // ログインかどうかを判定する
    if (パス名 === '/login') {
        // クライアントから送信されたリクエストがPOSTリクエストかどうかを判定します if (req.method === 'POST') {
            // クライアントから送信されるデータのデフォルトのエンコード形式を定義します req.setEncoding('utf-8')
                // req.setEncoding('binary') binary はバイナリエンコーディングを定義します // 本文のデータを取得します // 本文のデータはストリームを通じて書き込まれます // データイベントがリッスンされると、入力ストリーム、つまり本文の関連コンテンツが取得され、このデータの結果を返すことができます req.on('data', (data) => {
                // JSON.parse() はオブジェクト内の文字列を js オブジェクトに変換します // {"username":"阿花","passward":"123"} ---> {username: 'ahua',password: 123}
                const { ユーザー名、パスワード } = JSON.parse(データ)
                console.log(ユーザー名、パスワード)
            })
        }
    }

    res.end('リクエスト結果')

})
server.listen('8089', 'localhost', () => {
    console.log("サーバーが正常に開始されました")
})

サーバー印刷要求結果

ここに画像の説明を挿入

これにより、単純なサーバー対話プロセスが完了します。

これで、HTTP サーバーとクライアントのインタラクションをシミュレートするための node.js+postman に関するこの記事は終了です。関連する node.js+postman サーバーとクライアントのインタラクションのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • node.js プラットフォームでの Express セッションおよび Cookie モジュール パッケージの構成の詳細な説明
  • angular2+node.js の高速パッケージングとデプロイメントの実践的な応用
  • CentOS 8.2 サーバーに最新バージョンの Node.js をインストールする方法
  • NODE.JS を使用して WEBSERVER を作成する手順
  • ローカル Vue プロジェクトをローカル Node.js サーバーにリクエストするように構成する方法の詳細な説明
  • Node.jsでサーバーを実装する3つの手順とExpressパッケージの使用

<<:  Ubuntu 18.04 Linux システムに JDK と Mysql をインストールする方法

>>:  MySQL 数値型オーバーフローの処理方法

推薦する

mysql8.0.11クライアントがログインできない問題の解決方法

この記事では、mysql8.0.11クライアントがログインできない問題の解決策を紹介します。参考まで...

mysql 一時テーブルの使用状況の分析 [クエリ結果は一時テーブルに保存できます]

この記事では、例を使用して MySQL 一時テーブルの使用方法を説明します。ご参考までに、詳細は以下...

5 分で vue-cli3 を使用してプロジェクトを作成する方法を説明します (初心者向けガイド)

目次1. Vue環境を構築する2. Vue スキャフォールディングツール3. プロジェクトを作成する...

CentOS7 64 ビットでの MySQL 5.7 のインストールと設定のチュートリアル

インストール環境: CentOS7 64ビットMINI版、MySQL5.7をインストール1. YUM...

MySQL ビューの紹介と基本操作のチュートリアル

序文ビューは、データベース システム内で非常に便利なデータベース オブジェクトです。 MySQL 5...

JSデータ型検出のさまざまな方法の概要

目次背景データ型を決定する方法は何ですか? 1. typeof を使用して基本データ型を決定します。...

Docker イメージの作成、アップロード、プル、およびデプロイ操作 (Alibaba Cloud を使用)

学習プロセス中にプッシュ イメージが常にタイムアウトすることがわかったため、Alibaba Clou...

Linuxファイルシステム操作の実装

この読書ノートでは、主にファイルシステムに関連する操作を記録します。ディスクとディレクトリの容量ディ...

Youdaの新しいプチビューの実装

目次序文導入ライブ使いやすいルートスコープマウント要素の指定ライフサイクルコンポーネントグローバル状...

Navicat for MySQL 15 登録とアクティベーションの詳細なチュートリアル

1. Navicat for MySQL 15をダウンロードするhttps://www.navica...

HTML の marquee 属性の詳細な説明

このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルでのみサポートされているため、IEカ...

js のループメソッドとさまざまなトラバーサルメソッド

目次forループwhileループdo-while ループループのネストトラバーサルメソッド~のために...

MySQL 8.0 をインストールした後、初めてログインするときにパスワードを変更する問題を解決する

MySQL 8.0.16で初回ログイン時のパスワードを変更する方法を紹介します。 MySQLデータベ...

MySQL 8.0 で列を素早く追加する方法

序文: MySQL 8.0 では高速な列追加がサポートされ、数秒で大きなテーブルにフィールドを追加で...

Nodeはリクエスト追跡にasync_hooksモジュールを使用します

async_hooks モジュールは、Node.js バージョン 8.0.0 に正式に追加された実験...