2014-09-22 1 views
-1

나는 왜 우리는 여전히 예를 들어 AJAX 요청에 GET 방식을 사용하고, 궁금 해요 : 당신이 URL에 데이터를 저장할 때 구글을 조회 할 때AJAX 방식의 POST보다 GET 성능이 우수할까요?

$.ajax({ 
    type: "GET", 
    url: "SomeController/GetSomething", 
    data: { id: 100} 
}); 

GET은, 편리하고 당신은 보낼 친구 나 다른 사람에게 그 쿼리. 반면에 우리에게는 보안상의 차이가 있습니다. 그들은 크지 않습니다 (나는 장애물이라고 말하고 싶습니다).하지만 폼 데이터를 표시하고 싶지 않을 때 POST를 사용하는 것이 약간 더 낫습니다. 또한 POST는 모든 유형의 데이터를 저장하고 데이터 크기를 제어하며 전달하는 변수를 숨길 수 있습니다.

"공개"(검색 창, 기사 페이지, 사용자 프로필 ...)가 아닌 곳에서 항상 GET을 사용하고 POST를 다른 곳에서 사용하는 좋은 해결책입니까? 이 방법을 사용하면 POST 메서드를 사용하여 모든 AJAX 쿼리를 보내야합니다.

+1

GET은 URL에 매개 변수가 있음을 의미합니다. POST가 아닙니다.GET의 최대 길이 제한 (서버에 따라 다름 : 2KB - 8KB); POST가 아닙니다. – duffymo

+2

차이점은 사용하는 방법이 아니라 사용할 방법입니다 : GET = id 100의 뭔가를주세요. POST = ID 100으로 무언가를 만듭니다. 이것은 주로 RESTful 서비스를위한 것입니다. 또 다른 이유는 POST 요청이 아닌 GET 요청을 복사 할 수 있기 때문입니다. – DoXicK

+0

물론 REST입니다. – Fka

답변

0

GET은 안전하지 않지만 링크를 복사하여 붙여 넣을 수 있으며 동일한 결과를 얻을 수 있습니다. POST는 매개 변수를 직접 표시하지 않는 방식으로 더 안전합니다. 모든 구멍을 막기 위해 백엔드에서 작업해야합니다.

0

키는 "GET"이라고하는 이유와 다른 하나는 "POST"라는 것을 잊지 말아야합니다.

GET에 액세스 할 수 있으므로 민감한 것은 좋지 않지만 직접 조작하기 쉽습니다.

POST를 사용하여 서버 측에 민감하거나 "긴"데이터를 제출해야합니다.

0

이 단지 내 의견이다

정말 항상 데이터가 HTTP 요청시 전송되는 정확하게 발견 할 수있을 것이다 게시되는 내용의 데이터 알고 싶어 능숙한 사용자. 이 작업에 꼭 필요한 도구는 최신 브라우저에 내장 된 도구뿐입니다. HTTPS를 사용하여 전송하는 경우 제 3자가 GET 매개 변수를 식별 할 수 있지만 POST 데이터는 식별 할 수 없으므로 민감한 데이터는 POST로만 보내야한다는 것이 맞다고 말할 수 있습니다. 그렇지 않으면 보안 도구로서 POST over GET은 암호 입력시 암호 마스크와 유사한 기능을 제공합니다 (누군가가 어깨 너머로 데이터를 보지 못하도록 함).

"이제 더 나아 졌나요?"

난 그냥 동기 HTTP 요청과 같은 사용자 나 응용 프로그램이 데이터를 얻을 해야 할 때, 그리고 POST는 사용자의 앱이 지속성 (게시물에 데이터를 필요로 할 때, 당신이 얻을 사용해야한다는 말을

- 세션 (로그인과 같은) 또는 데이터베이스 등). 그래서 의미 론적 차이가 더 많습니다. 실제로 원할 경우 모든 게시물을 사용할 수 있습니다.

1

POST XHR을 사용하는 경우 두 단계 프로세스를 사용합니다. 먼저 헤더를 전송 한 다음 데이터를 전송하지만 응답 성은 Ajax를 사용하는 것입니까? 따라서 한 단계 프로세스 (GET XHR)를 사용할 수있는 경우 왜 2 단계 프로세스를 사용합니까?

또한 AFAIK, GET 요청은 캐시 가능, POST은 아닙니다.

마지막으로 중요한 것은 지적한 것처럼 HTTP 동사는 의미가 있습니다.

서버에서 데이터를 가져 오는 데는 GET XHR을 사용하고 데이터를 보내려면 POST XHR을 계속 사용하십시오.