POST 요청보다 GET 요청을 사용하는 이점은 무엇입니까?
과거에 제 Ajax 어플리케이션 중 몇 개는 GET 요청을 사용했지만 지금은 POST 요청을 사용하기 시작했습니다.POST 요구는 조금 더 안전하고 확실히 url 친화적이고 예쁜 것 같습니다.그래서 GET request를 사용해야 할 이유가 있는지 궁금합니다.
나는 일반적으로 다음과 같이 문제를 제기한다.요청 후 중요한 사항이 변경되었습니까?(로그 등)이 경우 POST 요구여야 합니다.그렇지 않으면 GET 요구여야 합니다.
POST 요구를 「약간」시큐러티라고 하는 것은, 유저가 POST 요구를 페이지에 가짜로 하는 것은 지극히 간단한 일이기 때문에, 매우 기쁘게 생각합니다.단, POST 요구로 하면 웹 액셀러레이터 또는 새로고침이 실수로 액션을 다시 트리거하는 것을 방지할 수 있습니다.
AJAX로서 고려해야 할 점이 하나 더 있습니다.콜백 지원으로 JSON을 반환할 경우 다른 웹사이트에서 볼 수 없는 기밀 데이터를 넣지 않도록 주의하십시오.Wikipedia는 이러한 측면에서 취약성이 있으며, 사용자 안티 CSRF 토큰이 JSON API를 통해 노출되었습니다.
단, 이 질문에 대한 모든 좋은 점은 GET 요구가 POST 요구보다 특정 시나리오에서 더 유용하다는 것입니다.
- 즐겨찾기에 추가할 수 있습니다.
- 캐시할 수 있습니다.
- 그들은 더 빠르다
- 데이터를 변경하지 않는 경우 결과를 알고 있기 때문에 여러 번 방문하는 것은 문제가 되지 않습니다.
후세를 위해 이 코멘트를 블로그 노트 3번으로 갱신해 주십시오.모두 Omar AL Zabir(참조 블로그 투고의 작성자)의 공로를 인정합니다.
「Atlas는 디폴트로, 모든 AJAX 콜에 대해서 HTTP POST 를 실행합니다.Http POST는 Http GET보다 비싸다.회선을 통해 더 많은 바이트를 전송하기 때문에 네트워크 시간이 많이 걸리고 ASP도 만듭니다.NET은 서버 측에서 추가 처리를 수행합니다.따라서 가능한 한 Http Get을 사용해야 합니다.단, Http Get에서는 객체를 파라미터로 전달할 수 없습니다.숫자, 문자열 및 날짜만 전달할 수 있습니다.Http Get 콜을 발신하면 Atlas는 인코딩된 URL을 작성하고 해당 URL을 히트시킵니다.따라서 url이 2048자보다 커지게 하는 콘텐츠를 너무 많이 전달해서는 안 됩니다.제가 아는 바로는 URL의 최대 길이입니다.
http post의 또 다른 나쁜 점은 실제로는 2통이라는 것입니다.첫 번째 브라우저는 "HTTP 100 Continue"로 http post 헤더와 서버 응답을 보냅니다.브라우저는 이를 수신하면 실제 본문을 전송합니다.
GET은 부작용 없는 요청(예: 정보 가져오기)을 수행할 때 사용해야 합니다.이 요청은 다음과 같습니다.
- 문제 없이 반복 - 브라우저가 오류를 감지하면 자동으로 재시도할 수 있습니다.
- 브라우저에 의해 결과가 캐시되다
- 프록시에 의해 캐시되다
이것들은 모두 좋다.데이터(특히 퍼블릭 데이터)만을 취득하는 것은 GET이어야 합니다.서버는 필요에 따라 캐시를 허용하기 위해 sensible Last-Modified: 헤더와 Expires: 헤더를 전송해야 합니다.
아무도 언급하지 않은 다른 점이 하나 있다.
GET 요구는 URL 문자열로 전달되므로 보통 브라우저에 따라 길이 제한이 적용됩니다.대부분이 2000자 정도 되는 것 같아요.
POST 요구는 훨씬 클 수 있습니다.사실 제한은 없습니다.따라서 웹 서버에 데이터를 요청해야 하고 많은 파라미터 정보를 전달할 경우 POST 요청이 유일한 옵션일 수 있습니다.
앞에서 설명한 바와 같이 GET 요구는 데이터 요구(부작용 없음)를 위한 것이며, POST 요구는 일반적으로 데이터를 저장하는 서버에 다시 전송하기 위해 사용됩니다(부작용 있음).예를 들어 POST를 사용하여 파일을 업로드합니다.파일을 취득하려면 , GET 를 사용합니다.
IE의 GET URL 문자열이 매우 짧았던 적이 있습니다.Lotus Notes와 같은 일부 응용프로그램은 문서 ID를 나타내기 위해 많은 수의 임의 문자를 사용합니다.랜덤 문자열을 생성하는 다른 제품을 사용하는 것이 불쾌해서 페이지 URL이 매번 고유했습니다.랜덤 문자열이 엄청나서 IE6에서 항상 기억으로 동작하는 건 아니었어요
이것은, GET 를 사용하는 장소와 POST 를 사용하는 장소를 결정하는 경우에 도움이 됩니다.
URI, 어드레서빌리티 및 HTTP GET 및 POST 사용.
POST 요구는 GET과 마찬가지로 안전하지 않습니다.주요 차이점은 POST를 사용하여 서버 응용 프로그램의 상태를 변경하는 반면 GET은 POST에서 데이터만 요구한다는 것입니다.
이 차이는 깨끗하고 "restful" URL을 사용하는 경우 중요합니다.URL 자체에서 리소스가 지정되고 다양한 방법이 서버 측에서 다른 액션을 트리거합니다.
아마도 가장 중요한 것은 GET은 북마크/url 이력에서 볼 수 있고 구글에서 검색할 수 있다는 것입니다.
POST는 이벤트를 북마크하거나 URL로 입력하지 않는 것이 중요합니다.그렇지 않으면 사용자(또는 구글이 URL을 탐색하는 경우)가 실수로 시스템에서 사용자를 삭제하는 등의 작업을 수행할 수 있습니다.
| 얻다 | 포스트. |
|---|---|
| GET 방식에서는 값이 URL에 표시됩니다. | POST 방식에서는 값이 URL에 표시되지 않습니다. |
| GET 에는, 값의 길이(통상은 255 문자)에 제한이 있습니다. | POST 에서는, HTTP 를 개입시켜 송신되기 때문에, 값의 길이에 제한이 없습니다. |
| GET의 퍼포먼스는, URL 의 값을 추가하는 간단한 성질 때문에, POST 에 비해 우수합니다. | HTTP 본문에 POST 값을 포함시키는 데 시간이 걸리기 때문에 GET 방식에 비해 성능이 저하됩니다. |
| 이 메서드는 문자열 데이터 유형만 지원합니다. | 이 메서드는 문자열, 숫자, 이진 등 다양한 데이터 유형을 지원합니다. |
| GET 결과를 북마크할 수 있습니다. | POST 결과는 북마크 할 수 없습니다. |
| GET 요청은 캐시 가능한 경우가 많습니다. | POST 요구는 캐시하기 어렵다. |
| GET 파라미터는 웹 브라우저 이력에 남습니다. | 파라미터는 웹 브라우저 이력에 저장되지 않습니다. |
출처 및 상세 분석: https://www.guru99.com/difference-get-post-http.html
언급URL : https://stackoverflow.com/questions/195212/what-are-the-advantages-of-using-a-get-request-over-a-post-request
'source' 카테고리의 다른 글
| 후크를 사용할 때 상태가 업데이트되기를 기다립니다. (0) | 2023.03.13 |
|---|---|
| 키를 문자열로, 값을 맵 반복으로 포함하는 ngFor 루프 맵을 사용하여 반복하는 방법 (0) | 2023.03.13 |
| 컨스트럭터 vs componentWillMount. componentWillMount는 컨스트럭터로는 할 수 없는 일을 componentWillMount는 어떻게 할 수 있습니까? (0) | 2023.03.08 |
| mongodb 그룹 값, 여러 필드별) (0) | 2023.03.08 |
| Javascript에서 PHP로 JSON 데이터를 보내시겠습니까? (0) | 2023.03.08 |