IT TIP

Ajax에서 GET 대 POST

itqueen 2020. 10. 25. 13:26
반응형

Ajax에서 GET 대 POST


Ajax 요청에 대한 GETPOST 의 차이점은 무엇입니까 ?

GET을 사용할 때 매개 변수가 URL로 전송 된다는 점을 제외하면 모든 요청이 백그라운드에서 이루어지고 사용자가 아무것도 찾지 못하기 때문에 매개 변수가 URL로 전송 된다는 점을 제외하고는 차이점이 없습니다. 차.

편집 : PUTDELETE 방법 은 무엇에 사용됩니까?


GET은 서버에서 데이터를 가져 오기 위해 설계되었습니다. POST (및 덜 알려진 친구 PUT 및 DELETE)는 서버의 데이터를 수정하기 위해 설계되었습니다.

GET 요청으로 인해 애플리케이션에서 데이터가 제거되지 않아야합니다. 데이터를 제거하기 위해 GET으로 클릭 할 수있는 링크가있는 경우 Google 스파이더 링 사이트에서 모든 "삭제"링크를 클릭 할 수 있습니다.

HTML 2.0 사양을 인용하는 표준 답변은 여기 에서 찾을 수 있습니다 .

양식 처리가 멱등 적이면 (즉, 세계 상태에 지속적으로 관찰 가능한 영향이 없음) 양식 메소드는 GET이어야합니다. 많은 데이터베이스 검색에는 가시적 인 부작용이 없으며 쿼리 양식의 이상적인 응용 프로그램을 만듭니다.

양식 처리와 관련된 서비스에 부작용이있는 경우 (예 : 데이터베이스 수정 또는 서비스 가입) 메서드는 POST 여야합니다.

AJAX 호출에서 서버가 지원하는 모든 방법을 사용해야합니다. 데이터를 수정하는 작업이 POST / PUT / DELETE에 의해 호출되도록 항상 서버를 설계해야합니다. 다른 주석에는 일반적으로 C / R / U / D를 "POST 또는 PUT"(Create) / GET (Read) / PUT (Update) / DELETE (Delete)에 매핑하는 REST에 대한 링크가 있습니다.


많은 양의 데이터 나 HTTPS를 통해 민감한 데이터를 보내는 경우 POST를 사용하는 것이 좋습니다. 단순한 매개 변수라면 GET을 사용합니다.

GET 요청에는 전송할 수있는 데이터 양에 제한이 있습니다. 정확한 번호를 잊어 버렸습니다.하지만 상당한 내용을 보내면 문제가 발생할 수 있습니다.

기본적으로 GET과 POST의 차이점은 GET 요청에서 매개 변수가 URL에 전달되고 POST에서와 같이 매개 변수가 메시지 본문에 포함된다는 것입니다.


AJAX 여부는 관련이 없습니다. 당신이 취하는 행동에 관한 것입니다. REST 원칙을 따르는 것이 좋습니다 . 업데이트, 삭제 등에 대한 추가 조항이 있습니다.


GET 요청은 CSRF (사이트 간 요청 위조) 공격에서 악용하기가 더 쉽습니다. 즉, 가짜 POST 요청은 사용자 측에서 자바 스크립트를 활성화해야하는 반면 가짜 GET 요청은 img, script 태그만으로 가능합니다.


많은 웹 서버는 URL의 일부로 전달할 수있는 데이터의 길이를 제한하므로 GET 요청이 디버그하기 어려운 이상한 방식으로 중단 될 수 있습니다.

또한 대부분의 서버 소프트웨어는 액세스 로그에 URL을 기록하므로 GET 요청에서 중요한 정보 (예 : 암호)를 전달하면 디스크에 일반 텍스트로 기록 될 가능성이 높습니다.

REST 관점에서 GET 요청에는 부작용이 없어야하며 데이터를 수정해서는 안됩니다. 따라서 ID로 리소스를 가져 오는 경우 의미가 있지만 리소스에 대한 변경 사항을 커밋하는 경우 http 동사에 PUT, POST 또는 UPDATE를 사용해야합니다.


둘 다 일부 데이터를 보내고 해당 데이터를 사용하여 일부 응답을받는 데 사용됩니다.

GET : 서버에서 정보 저장소를 가져옵니다. 즉. 검색, 트윗, 개인 정보. 정보를 보내려면 process.php? name = subroto를 사용하여 요청 보내기 요청을 받으면 기본적으로 url을 통해 정보를 보냅니다. URL은 2083 자 이상을 처리 할 수 ​​없습니다. 그래서 블로그 게시물의 경우 불가능하다는 것을 기억할 수 있습니까?

POST : Post는 get과 동일한 작업을 수행합니다. 사용자 등록, 사용자 로그인, 빅 데이터 전송, 블로그 게시물. 보안 정보를 보내야하는 경우 URL을 거치지 않으므로 게시물 또는 빅 데이터를 사용하십시오.

AJAX : $ .get () 및 $ .post ()에는 $ .ajax ()의 하위 집합 인 기능이 포함되어 있습니다. 많은 구성이 있습니다.

$ .get () 메서드는 $ .Ajax ()에 대한 일종의 속기입니다. $ .get ()을 사용하는 경우 객체를 전달하는 대신 인수를 전달합니다. 최소한 검색하려는 파일의 URL (예 : 'test.txt')과 성공 콜백 인 처음 두 개의 인수가 필요합니다.

요약:

$.get( url [, data ] [, success ] [, dataType ] )
$.post( url [, data ] [, success ] [, dataType ] ) // for sending secure or Large information
$.ajax( url [, settings ] )  // More Configaration

나에 대해서는 POST를 선호합니다. 예를 들어 ID가있는 항목을 검색하기 위해 전송 된 값이 "컨트롤"이있는 데이터로 제한된다는 사실을 알고있는 이벤트를 예약합니다. 예 : "getitem? id = 123", "deleteImtem? id = 123", ... 다른 경우에는 사용자가 양식을 채울 수있는 경우 POST를 선호합니다.

Ryan Smith가 말했듯이 POST를 사용하여 많은 양의 데이터를 전송하는 것이 더 낫고 다른 언어 / 특수 문자로 사용하는 경우 걱정이 적습니다 (일반적으로 모든 전공 자바 스크립트 프레임 워크에는 문제가 없어야하지만 POST를 사용하는 데 걱정이 적다고 생각합니다.)

REST 관점의 경우 내 의견으로는이를 새 프로젝트와 함께 사용할 수 있습니다 (전체 프로젝트와의 일관성을 유지하기 위해).

마지막으로, 네트워크에서 사용되는 일부 프로그램 (URL 로거 (예 : 직원이 비 자동 사이트에서 시간을 잃었는지 확인하기 위해 ...) 프록시 등) 또는 다른 종류의 도구가 쿼리를 가로 챌 수 있습니다. . 일부는 보고서에서 GET으로 보낸 매개 변수를 다른 웹 페이지처럼 고려하여 표시합니다. 그러나이 상황에서는 프로젝트에서 다른 프로젝트로의 변경이 문제가 아닐 수 있습니다! ;)


첫째, 일반 정보입니다. 사용 GET만, 사용 데이터를 읽을 경우, POST당신은 등 파일이 txt, 데이터베이스에 뭔가를 변경하는 경우

그러나 문제는 일부 브라우저가 GET결과를 캐시한다는 것 입니다. AJAXIE7에서 요청에 문제가 있었지만 마침내 브라우저가 GET결과를 캐시한다는 것을 알았습니다 . 흐름을 다시 생각하고 요청을로 변경합니다 POST.

따라서 GET캐싱을 원하지 않는 경우 사용 하지 마십시오.

(물론 GET 작업에서 캐싱을 비활성화 할 수 있습니다.하지만 선호하지 않았습니다)


차이는 사이 동일 GET하고 POST당신이 아약스, HTML 사용하고 있는지 여부 form의, 또는 curl. 관련 정의는 다음과 같습니다.


URL에서 엉망이 될 수있는 문자 (예 : 공백)가있는 인수를 전달하는 경우 POST를 사용합니다. 그렇지 않으면 GET을 사용할 수 있습니다.

일반적으로 몇 가지 작은 인수를 전달하는 경우 GET을 사용합니다. 그러나 블로그 항목, 텍스트 등과 같은 사용자 제출 정보를 전달하려면 POST를 사용하는 것이 좋습니다.

또한 세그먼트 기반 URL에 완전히 의존하는 특정 프레임 워크도 있습니다 (예 : 이러한 프레임 워크가 보안을 위해 GET 변수를 설정 해제하는 site.com/products/133대신 site.com/products.php?id=333이러한 프레임 워크는 항상 POST를 사용합니다.

참고 URL : https://stackoverflow.com/questions/715335/get-vs-post-in-ajax

반응형