이번 주 초에 의미 위반이라는 느낌이 들었습니다. 설명하겠습니다.HTTP GET 및 POST 의미 및 제한
나는 주어진 수의 매개 변수로 서비스에 요청하는 간단한 AJAX 클라이언트 응용 프로그램을 만들었습니다. 전체 앱은 기본적으로 읽기 전용이므로 HTTP GET을 사용하는 것이 최선의 방법이라고 생각했습니다. 전달해야하는 매개 변수 중 일부는 단순했습니다 (예 : 정렬 순서 또는 페이지 번호).
그러나 필요한 매개 변수 중 하나가 가변 길이 일 수 있으므로 걱정이됩니다. GET 요청의 쿼리 문자열에있는 모든 매개 변수를 인코딩 했으므로 불필요한 upper limit of (roughly) 2000 characters for the request URL을 배치 한 것처럼 보였습니다. 그리고 상관없이 500 자 길이의 요청 URL을 보길 좋아하지 않았습니다.
그래서 POST 요청에는 이와 같은 제한이 없으므로 전환하기로 결정했습니다. 그러나 이것은 옳다고 생각하지 않습니다. POST가 데이터 수정을 의미한다는 인상하에 있지만 간단한 읽기 전용 요청에 사용하고 있습니다.
더 좋은 방법이 있나요? 많은 매개 변수를 사용하여 GET을 수행 하시겠습니까? 한 가지 방법을 들었습니다 - 매개 변수의 사전 POST를 수행 한 다음 GET을 수행하십시오. 그러나이 기술은 많은 것을 남겨두고 있습니다.
그러나이 특정 사례를 살펴보면 HTTP 요청 방법의 실제 의미와 제한 사항은 무엇입니까? 그리고 왜 GET은 어떤 종류의 매개 변수 페이로드도 지원하지 않습니까? URL에있는 쿼리 문자열을 사용하면 거의 나에게 해킹처럼 느껴집니다. 이 문제에 대한
왜 게시물이 데이터 수정을 의미한다고 생각합니까? –
@ConradFrix : 양식 제출, 파일 업로드 및 [멱등수가없는 일반적인 작업]에서 사용하기 때문에 (http://en.wikipedia.org/wiki/POST_ (HTTP) #Affecting_server_state) – voithos
Ajax 애플리케이션 작성하기, 왜 URL 길이가 중요합니까?또한 2000 자 제한은 Ajax 요청이 아닌 브라우저 URL에만 적용됩니다 (사용자가 제시 한 링크에 대한 설명에 언급 된대로). –