http://www.boutell.com/newfaq/misc/urllength.html에 명시된 바와 같이 HTTP 쿼리 문자열의 길이는 제한되어 있습니다. 클라이언트 (Firefox, IE, ...), 서버 (Apache, IIS, ...) 또는 네트워크 장비 (적용 방화벽, ...)에 의해 제한 될 수 있습니다.
오늘 저는 검색 양식으로이 문제에 직면합니다. 많은 필드가 포함 된 검색 양식을 개발했으며이 양식은 GET 요청으로 서버에 전송되므로 결과 페이지를 북마크 할 수 있습니다.
쿼리 문자열의 길이가 1100 바이트 인 필드가 너무 많고 1024 바이트가 넘는 HTTP GET 요청을 삭제하는 방화벽이 있습니다. 시스템 관리자는 제한이 없도록 대신 POST를 사용하도록 권장합니다.
물론 POST는 작동하지만 검색은 POST가 아닌 GET으로 느껴집니다. 따라서 쿼리 문자열이 너무 길지 않은지 확인하기 위해 필드 이름을 검토하고, 그렇게 할 수 없으면 실용적으로 POST를 사용할 것입니다.
그러나 RESTful 서비스 설계에 결함이 있습니까? GET 요청의 길이가 제한되어 있다면 어떻게 큰 객체를 RESTful 웹 서비스로 보낼 수 있습니까? 예를 들어, 파일을 기반으로 계산하는 프로그램이 있고 다음과 같은 RESTful 웹 서비스를 제공하려는 경우 : http://compute.com?content=<base64 file>
. 쿼리 문자열의 길이에 제한이 없기 때문에 작동하지 않습니다.
조금 당황 스럽네요 ...