> 백엔드 개발 > PHP 튜토리얼 > Ajax에서 get 메소드와 post 메소드의 차이점

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

巴扎黑
풀어 주다: 2023-03-02 18:30:01
원래의
1821명이 탐색했습니다.

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.

는 즉, 메소드가 get이면 작업 페이지 끝에 있는 매개변수 목록이 무시되고 ;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의 경우에는 그 반대입니다.


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿