차이점: 1. GET 요청의 매개변수는 URL을 통해 전달되는 반면 POST 요청의 매개변수는 HTTP 업링크 메시지를 통해 전달됩니다. 2. POST 요청의 보안은 GET 요청의 보안보다 높습니다. GET 요청의 매개변수는 URL에 표시되므로 GET 요청은 안전하지 않습니다. 3. GET에는 요청 캐시가 있지만 POST에는 없습니다. 4. GET은 데이터를 검색하는 데 사용되지만 POST는 데이터를 제출하는 데 사용됩니다. 5. GET으로 전송되는 데이터의 양에는 제한이 있지만 POST로 전송되는 데이터의 양에는 제한이 없습니다. 6 GET 요청에는 데이터 유형에 제한이 있지만 POST 요청에는 제한이 없습니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, nodejs 버전 16, DELL G3 컴퓨터.
Node는 서버 측에서 실행되는 JavaScript 언어입니다. 사용자는 서버에 요청을 보내려면 get/post 메소드를 사용해야 합니다.
get과 post로 구현되는 기능은 기본적으로 클라이언트가 서버에 데이터를 제출하지만 구현 메커니즘이 다릅니다.
GET 요청
GET 요청은 양식의 작업 속성이 가리키는 URL에 매개변수 데이터 대기열을 추가합니다. 값은 일대일 형식의 이름 속성에 해당합니다. 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('http'); const urlLib=require('url'); 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:'Kity',pass:'232312'} console.log(url, GET); res.write('success'); res.end(); }).listen(8080);
node.js 코드를 실행한 후의 결과는 다음과 같습니다.
liyabin@liyabin-ThinkPad-Edge-E430:~/下载/node$ node server3.js /index { user: 'Kity', pass: '231312' }
POST 요청
POST 요청의 모든 내용은 요청 본문에 있으며 모든 node.js는 기본적으로 요청 본문을 구문 분석하지 않습니다. 게시 요청은 쿼리스트링 모듈의 구문 분석()을 통해 처리됩니다. 우편으로 전송되는 데이터의 양은 가져오기보다 훨씬 많습니다. 한 번에 전송되지 않으며 세그먼트별로 도착해야 합니다.
게시물 요청 양식을 보내려면 위의 method="get"을 method="post"로 변경하면 됩니다.
const http=require('http'); const querystring=require('querystring'); http.createServer(function (req, res){ //POST——req var str = ''; //接收数据 //data——有一段数据到达(很多次) req.on('data', function (data){ let i = 0; console.log(`第${i++}次收到数据`); str += data; }); //end——数据全部到达(一次) req.on('end', 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: 'fdf', pass: '21341412' }
get과 post의 차이점
GET 및 POST 요청의 장점과 단점:
(1) get으로 전송되는 데이터의 양은 매우 작으며 일반적으로 약 2k이지만 실행 효율성은 post보다 좋습니다.
(2) post로 전송되는 데이터의 양은 서버가 데이터를 읽기를 기다리고 있습니다. , 그러나 이는 서버가 대량의 데이터를 사용하는 것을 방지하기 위한 것입니다. Microsoft에서는 공격을 위해 Request.Form()을 사용하여 수신하는 최대 데이터에 제한을 두고 있는데, IIS4의 경우 80kB입니다. IIS5
(3) 게시물은 일반적으로 양식을 제출하는 데 사용됩니다. 왜냐하면 get을 사용하여 데이터를 제출하면 페이지를 캐시할 수 있거나 다른 사용자가 클라이언트에 액세스할 수 있는 경우 사용자 이름과 비밀번호가 URL에 표시되기 때문입니다. 사용자 이름과 비밀번호는 기록 기록에서 볼 수 있어 데이터 보안 문제가 발생합니다.
노드 관련 지식을 더 보려면 nodejs 튜토리얼을 방문하세요!
위 내용은 node.js get과 post의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!