2011-02-04 4 views
2

PHP에서 기본적으로 템플릿 디자이너 인 웹 앱을 작성하고 있습니다. 사용자는 측정 값, 색상 등을 양식에 입력하고 제출하면 미리보기를 볼 수 있습니다. 정의 된 모든 변수가 URL에 표시됩니다 (예 : http://mysite.com/template.php?height=100&width=300&color=blue ...)PHP GET 요청에 너무 많은 변수가 있습니까?

약 100 개의 변수가 있으므로 결과 URL이 꽤 복잡해질 수 있습니다. 아니, 그게 잘못 됐어,하지만 난 PHP를 처음이야 그래서 그냥 더 좋은 방법이 일을하는지 궁금 해서요? GET 요청을 통과하는 100 개의 변수가 불필요하게 브라우저 속도를 느리게합니까?

+0

브라우저가 느린 것을 확인 했습니까? –

+0

아니요. 나는 단지 나중에 내 얼굴에 날아 가지 않을 것이라고 확신하고 싶다. –

답변

4

그의 문제점은 특정 브라우저에만 고정 URL 쿼리 크기를 지원한다는 것입니다.

대신 POST로 보낼 수 없습니까?

체크 아웃 IE는, 예를 들면 :

http://support.microsoft.com/kb/208427

그리고 일부 이전 클라이언트 또는 프록시 구현에만

+0

POST 메서드를 사용하면 현재 설정을 저장하고 나중에 다시 돌아 오는 방법은 어떻게됩니까? GET을 사용하면 URL을 복사 한 다음 나중에 다시 되돌릴 수 있습니다. –

+0

나중에 사용할 수 있도록 저장해야하는 경우 세션 ('$ _SESSION')을 사용할 수 있습니다. – xil3

5

PHP GET 요청에 너무 많은 변수가 있습니까?

URL은 can be only 2083 characters long in Internet Explorer (분명히 최대 7, 100 %는 확실하지 않으며 약 9는 알 수 없음)입니다. 이전 버전의 Opera (4KB라고 생각합니다) 및 일부 웹 서버에도 비슷한 제한 사항이 있습니다.

사용 사례에 따라 세션 변수에 데이터를 저장하는 것이 좋습니다.

+0

글쎄, 내'opera : config'는 "URL의 최대 길이"에 대해 말한다 :'2147483647' -하지만 이전 버전은 실제로 제한적이었다. – mario

+0

IE 9 미리보기에서 URL 제한이 지속되는지 알고 계십니까? –

+0

@Andy E 모르겠다. 설치하지 않았다. 두 번째로 IE 8에서 이미 완화되었을 수도 있습니다. –

2

, 왜냐하면 그들은 정적 컨텐츠를 얻도록 설계 되었기 때문입니다.

내용은 옵션에 따라 다르며 어떤 경우에도 POST가 더 효과적입니다.

그런데 GET 프로토콜이 URL 길이를 제한한다는 것은 알고 있어야하며 실제로 브라우저에 따라 달라집니다.

관련 문제