ホームページ >ウェブフロントエンド >フロントエンドQ&A >Node.jsのgetとpostの違いは何ですか?

Node.jsのgetとpostの違いは何ですか?

青灯夜游
青灯夜游オリジナル
2022-07-18 17:47:466507ブラウズ

違い: 1. GET リクエストのパラメータは URL を通じて渡されますが、POST リクエストのパラメータは HTTP アップリンク メッセージを通じて渡されます; 2. POST リクエストのセキュリティは、 GET リクエストと GET リクエストのパラメータは URL に表示されるため、GET リクエストは安全ではありません; 3. GET にはリクエスト キャッシュがありますが、POST にはありません; 4. GET はデータの取得に使用されますが、POST はデータの取得に使用されます。データの送信に使用されます; 5. GET で送信されるデータの量は制限されていますが、POST で送信されるデータの量には制限がありません; 6. GET リクエストにはデータ型の制限がありますが、POST リクエストには制限がありません。

Node.jsのgetとpostの違いは何ですか?

このチュートリアルの動作環境: Windows 7 システム、nodejs バージョン 16、DELL G3 コンピューター。

Node はサーバー側で実行される JavaScript 言語であり、ユーザーは get/post メソッドを使用してサーバーにリクエストを送信する必要があります。

get と post で実装される関数は基本的に同じで、クライアントからサーバーにデータを送信しますが、実装の仕組みが異なります。

GET リクエスト

GET リクエストは、フォームの action 属性が指す URL にパラメータ データ キューを追加します。値は次のとおりです。 name 属性は 1 対 1 に対応しており、URL 内で確認できます。送信された req.url は、url モジュールの parse() を通じて処理されます。

フォーム フォームを通じて get リクエストを送信します:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>get</title>
  </head>
  <body>
    <form action="http://localhost:8080/index" method="get">
      用户:<label>
      <input type="text" name="user" value="">
       </label><br>
      密码:<label>
      <input type="password" name="pass" value="">
       </label><br>
      <input type="submit" value="提交">
    </form>
  </body>
</html>

対応する node.js コードは次のとおりです:

const http=require(&#39;http&#39;);
const urlLib=require(&#39;url&#39;);

http.createServer(function (req, res){
    //req获取前台请求数据
    //req.url的值是:/index?user=Kity&pass=32412
 var obj=urlLib.parse(req.url, true);
  var url=obj.pathname;//url的值是:"/index"
  var GET=obj.query; //GET的值是:{user:&#39;Kity&#39;,pass:&#39;232312&#39;}
  console.log(url, GET);

  res.write(&#39;success&#39;);
  res.end();
}).listen(8080);

node.js コードを実行した後の結果は次のとおりです。次のように:

liyabin@liyabin-ThinkPad-Edge-E430:~/下载/node$ node server3.js
/index { user: &#39;Kity&#39;, pass: &#39;231312&#39; }

POST request

POST リクエストのすべてのコンテンツはリクエスト本文に含まれており、すべての Node.js はデフォルトでリクエスト本文を解析します。 Post リクエストは、querystring モジュールの parse() を通じて処理されます。 post で送信されるデータ量は get よりもはるかに大きいため、一度に送信することはできず、分割して到達する必要があります。

投稿リクエスト フォームを送信するには、上記のメソッド="get" をメソッド="post" に変更するだけです。

const http=require(&#39;http&#39;);
const querystring=require(&#39;querystring&#39;);

http.createServer(function (req, res){
  //POST——req

  var str = &#39;&#39;;   //接收数据

  //data——有一段数据到达(很多次)

  req.on(&#39;data&#39;, function (data){
    let i = 0;
    console.log(`第${i++}次收到数据`);
    str += data;
  });
  //end——数据全部到达(一次)
  req.on(&#39;end&#39;, function (){
    let POST = querystring.parse(str);
    console.log(POST);
    res.write("success");
    res.end();
  });
}).listen(8080);

ノード コードを実行した結果は次のとおりです。

liyabin@liyabin-ThinkPad-Edge-E430:~/下载/node$ node server.js
第0次收到数据
{ user: &#39;fdf&#39;, pass: &#39;21341412&#39; }

get と post

# の違いNode.jsのgetとpostの違いは何ですか?

##GET リクエストと POST リクエストの長所と短所:

(1) get によって送信されるデータ量は非常に少なく、通常は約 2k , ただし実行効率はpostより良い;

(2) postは送信するデータ量が多く、サーバーがデータを読み込むのを待っているがバイト制限もある。大量のデータによるサーバーへの攻撃を防ぐため Microsoft は Request.Form( ) を使用します 受信する最大データには制限があります、IIS4 は 80kB、IIS5 は 100kB;

(3) フォームの送信には通常、 getを使用してデータを送信すると、URLにユーザー名とパスワードが表示されるため、ページがキャッシュされているか、他のユーザーがクライアントにアクセスでき、履歴レコードからユーザー名とパスワードが確認できます。 、データセキュリティの問題をもたらします。

ノード関連の知識の詳細については、

nodejs チュートリアル を参照してください。

以上がNode.jsのgetとpostの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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