Webサーバーとは何ですか?
アプリケーション (クライアント) は、特定のリソースが必要な場合、HTTP 経由でサーバーにリソースを要求できます。リソースを提供するサーバーは Web サーバーです
。
1.2 サーバーを作成する 2 つの方法
1.3 リクエスト オブジェクト リクエスト
オブジェクトは、クライアントからサーバーに渡されるすべての情報をカプセル化します。
受信したこのリクエストのリクエスト メソッド (GET、POST など)
に応じて異なる処理を実行する必要があります。
パラメータと処理方法は異なります。
このリクエストのヘッダーには、クライアント情報、データ受信形式、サポートされているエンコード形式などの情報も含まれます。
通常のリクエスト:
リクエストを送信するとき、クライアントはさまざまなデータをリクエストし、さまざまなリクエスト アドレスが渡されます。サーバーは、さまざまなリクエスト アドレスに基づいてさまざまな応答を行う必要があります。
ユーザーのリクエストアドレスに追加のパラメータも含まれている場合、それらをどのように解析すればよいでしょうか?
URL モジュールを使用できます。
その中で、url モジュールは、URL の処理と解析のためのユーティリティ ツールを提供します。
Import url const url = require('url')
リクエスト データが次のとおりであるとします。
コンソールが URL を解析した結果は次のようになります。
このうち、pathname は取得する必要がある最後のパスです。私たちの目的は、クエリでユーザー名とパスワードを個別に取得することです。
クエリ文字列モジュールのインポート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(パス名 === '/login'){ コンソール.ログ(クエリ); console.log(qs.parse(クエリ)); const { ユーザー名、パスワード } = qs.parse(クエリ) console.log(ユーザー名,パスワード); res.end('リクエストが終了') }});// 2. ポート番号を設定し、サーバーを起動します。server.listen(8888,'0.0.0.0',()=>{ console.log("サーバーは正常に起動しました~");})
Restful 仕様 (設計スタイル) では、データの追加、削除、変更、確認にはさまざまなリクエスト メソッドを使用する必要があります。
リクエスト方法を判断することで、異なる処理を行うことができます。
以下が本文内の JSON リクエスト データであると仮定します。 -> サーバーにユーザー名とパスワードを取得させるにはどうすればよいですか?
content-type は、このリクエストで伝送されるデータのタイプです。application
** コンテンツ-length: **ファイルのサイズと長さ
keep-alive:
**accept-encoding: **サーバーとクライアントに通知します。クライアントがサポートするファイル圧縮形式。たとえば、js ファイルは .gz ファイルに対応する gzip エンコーディングを使用できます。
**accept:** クライアントがファイル形式の種類を受け入れることができることをサーバーに通知します
。 *user-agent:** クライアント関連情報 ;
1.4 応答オブジェクト
結果データをクライアントに応答したい場合は、2 つの方法で応答できます:
注: end と close を呼び出さない場合、クライアントは結果を待ちます。
HTTP ステータス コード (HTTP ステータス コード) は、HTTP 応答ステータスを表すために使用される数値コードです。
カテゴリ | 理由フレーズ | |
---|---|---|
1xx | 情報 | 受け入れられたリクエストは処理中です |
2xx | 成功 | リクエストは正常に処理されました |
3xx | リダイレクト | リクエストを完了するには追加のアクションが必要です |
4xx | クライアント エラー クライアント エラー | リクエスト エラー、サーバーはリクエストを処理できません |
5xx | サーバー エラー (サーバー エラー) | サーバーリクエストの処理中にエラーが発生しました。 |
一般的な応答コード:
ステータス コードの | 説明 ステータスの | 説明 |
---|---|---|
200 | OK | リクエストは成功しました。通常、GET および POST リクエストに使用されます。 |
400 | 不正 | な |
リクエスト | は | 、クライアントのリクエストを理解できません |
403 | サーバーは、クライアントのリクエストを理解しますが、リクエストの実行を拒否します | 。 |
。 | ||
サーバー | は | 、クライアントの要求に基づいて、リソース (Web ページ) が見つかるように要求します。このコードを使用すると、Web サイトのデザイナーは、「要求したリソースが見つかりません。 |
サーバーに内部エラーが発生 | し | 、 |
過負荷またはシステム メンテナンスが原因で | 要求を完了できません」 | というパーソナライズされたページを設定できます |
、サーバーは一時的にクライアントのリクエストを処理できません。遅延の長さは、サーバーの Retry-After ヘッダーに設定されたステータス コードに含めることができます |
。
ヘッダー情報を返します。