>  기사  >  백엔드 개발  >  Ajax에서 get 메소드와 post 메소드의 차이점

Ajax에서 get 메소드와 post 메소드의 차이점

巴扎黑
巴扎黑원래의
2016-12-01 11:45:051758검색

1. get()과 post()의 기본적인 차이점

1. get은 제출된 양식의 ACTION 속성이 가리키는 URL에 매개변수 데이터 대기열을 추가하고 해당 값을 추가합니다. URL에서 볼 수 있는 양식의 각 필드에 추가합니다. Post는 HTTP 게시 메커니즘을 사용하여 양식의 각 필드와 해당 콘텐츠를 HTML HEADER에 배치하고 이를 ACTION 속성이 가리키는 URL 주소로 전송합니다. 사용자는 이 프로세스를 볼 수 없습니다.

2. get 메소드의 경우 서버측에서는 Request.QueryString을 사용하여 변수 값을 가져옵니다. post 메소드의 경우 서버측에서는 Request.Form을 사용하여 제출된 데이터를 가져옵니다. 요청을 사용하여 두 가지 방법으로 매개변수를 얻을 수 있습니다.

3. get으로 전송되는 데이터의 양은 작으며 2KB를 초과할 수 없습니다. 우편으로 전송되는 데이터의 양은 상대적으로 크며 일반적으로 기본적으로 제한이 없습니다. 그러나 이론적으로는 서버마다 다릅니다.

4. Get은 보안이 매우 낮은 반면 Post는 보안이 높습니다.

5.412d5786ff2d0c10023650eaf264474e는 4d1fcb0ca7c733fbcb929eab61bf6a5e 즉, 메소드가 get이면 작업 페이지 끝에 있는 매개변수 목록이 무시되고 207ffcbabfe9e526ee1296c52f760a50 ;form method="post " action="a.asp">

2. Ajax Get과 Post의 차이점에 대해 이야기해 보세요

1. Get 메소드
간단한 데이터를 전송할 때는 get 메소드를 사용하지만 일반적으로 크기가 1KB로 제한되며, 데이터는 URL 보내기(HTTP 헤더 전송)에 추가됩니다. 즉, 브라우저는 각 양식 필드 요소와 해당 데이터를 URL 매개변수 형식으로 요청 줄의 리소스 경로 끝에 추가합니다. 가장 중요한 것은 클라이언트의 브라우저에 캐시되어 다른 사람들이 브라우저 기록에서 계좌 번호, 비밀번호 등과 같은 고객의 데이터를 읽을 수 있다는 것입니다. 따라서 어떤 경우에는 get 메소드가 심각한 보안 문제를 일으킬 수 있습니다.

Ajax 보내기 요청: get 요청인 경우 보내기(매개변수) 매개변수: null 또는 xhr.send()여야 합니다.

xhr.setRequestHeader(header, value) for get request

참고: xhr.send(parameter); 매개변수가 비어 있지 않으면 자동으로 post 요청 메소드로 변환됩니다. request.getMethod(를 통해 요청 메소드를 얻을 수 있습니다. ); 메소드

예:

function getAjax(){ 
     //获取xhr对象
     var xhr = getXhr();
        //规定请求类型     
     xhr.open("get","main.jsp?username=123",true);
     xhr.onreadystatechange = function (){
          //判读是否处理完毕
          if(xhr.readyState==4){
               //判读服务器是否处理成功!
              if(xhr.status==200){
                    alert(xhr.responseText);
              }
          }
                } 
}

get 메소드 사용 시 주의하세요
(1) get 요청(또는 URL 전송 매개변수와 관련된 모든 것)의 경우 전달되는 매개변수는 다음과 같습니다. 먼저

encodeURIComponent 메소드 처리를 진행합니다. 예: var url = "update.php?username=" +encodeURIComponent(username) + "&content=" +encodeURIComponent

(content)+"&id =1" ;

2.Post 방법:
POST 방법을 사용할 때 브라우저는 전달하는 대신 각 양식 필드 요소와 해당 데이터를 HTTP 메시지의 엔터티 콘텐츠로 웹 서버에 보냅니다. POST 메소드를 사용하여 URL 주소의 매개변수로 데이터의 양이 GET 메소드를 사용하여 전송된 데이터의 양보다 훨씬 많습니다.

요청 보내기: 포스트 요청 전송(매개변수) 매개변수인 경우: 매개변수는 null이거나

xhr.send() |Send(매개변수 포함) 게시 요청은 xhr.setRequestHeader(header,value)

인스턴스:

function postAjax(){ 
     //获取xhr对象
     var xhr = getXhr();
     //规定请求类型     
     xhr.open("post","main.jsp",true);
   xhr.setRequestHeader("Content-Type",
       "application/x-www-form-urlencoded")
 xhr.send("username=345&pass=123");
     xhr.onreadystatechange = function (){
          //判读是否处理完毕
          if(xhr.readyState==4){
               //判读服务器是否处理成功!
              if(xhr.status==200){
                  alert(xhr.responseText);
              }
          }
                } 
}
Post 메소드를 사용하는 경우 다음 사항에 유의하세요.

(1) 헤더의 Context-Type을 application/x-www-form-

urlencode로 설정하면 서버가 매개변수가 있음을 알 수 있습니다. 일반적으로 XmlHttpRequest 개체의

SetRequestHeader( "Context-Type","application/x-www-form-urlencoded;")를 사용합니다. 예:

xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")

(2) 매개변수는 이름/값에 해당하는 키-값 쌍입니다. 각 값 쌍은 앰퍼샌드로 구분됩니다. 예를 들어 var name=abc&sex=man

&age=18 var name=update.php?abc&sex=man&age=18 및 var name=?abc&sex에 유의하세요. =man

&age=18을 쓰는 방식이 잘못되었습니다.

(3) 매개변수는 Send(매개변수) 메소드로 전송됩니다. 예: xmlHttp.send(name); get 메소드, 직접 xmlHttp.send(null );

(4) 서버측 요청 매개변수는 Get과 Post를 구별합니다. get 메소드인 경우 $username = $_GET["username"]; post 메소드인 경우 $username = $_POST["username"];

즉, GET 방식을 사용하여 전송하는데 데이터의 양이 적고 처리 효율성이 높으며 보안성이 낮고 캐시에 저장되지만 POST의 경우에는 그 반대입니다.

9b21ee6b58e97765e2a3d44fcda3f6db


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.