2009-06-07 2 views
6

예를 들어, 302 (또는 303)로 요청에 응답하고 브라우저에 특정 위치에 대한 요청을 수행한다고 상상해보십시오. HTTP를 통해 보낼 수있는 헤더가 있습니까 302, 브라우저의 후속 요청에 해당 헤더가 포함될 수 있도록?브라우저가 리디렉션 된 위치로 보내야하는 HTTP 리디렉션 정보를 보내시겠습니까?

URL을 리디렉션하고 URL에서 정보를 쿼리 문자열로 지정할 때 위치 헤더를 사용하여이 작업을 수행 할 수 있음을 알고 있습니다.하지만 더 좋은 방법이 있는지 궁금합니다. 합법적 인 시나리오는 ...

'콘텐츠가 이동, 여기 .. ​​오, 당신은 리디렉션 위치를 제공하기 위해 당신과 함께이 걸릴 할 것'

나는 큰 뚱뚱한없는 추측하고있어!

미리 감사드립니다.


편집

그 이유는 당신이 데이터를 게시 주어진하는 GET URL과 POST URL이 PRG 패턴에 관련하여이며, 서버 리디렉션 허용되지 않습니다 당신은 GET에, 그리고 GET에 '데이터 보내기'를하기 위해 '마법'을 수행하고, 가장 자주 세션 상태를 사용하여 변수를 저장합니다.

그러나이 일 수 있습니다. 이러한 PRG 요청이 많이 발생하는 시나리오에서 고장이 발생하는 것은 일반적인 시나리오는 아니며 일반적으로 아무도이 문제에 대해 걱정할 필요가 없습니다.하지만 수행 할 수있는 방법이 필요합니다. 요청을 식별, 이것은 쿼리 문자열 매개 변수가 302 ..에서 보낼 수 있도록 특정 항목이 그 요청에 따라 세션 상태에 넣어 수 있습니다.

URL에서 '요청 키'를 제거하고 더 암시 적으로 만들려고하는 것과 관련하여 질문이있었습니다. '작동하는 쿠키'가 나타나지만 스크류 업용으로 창을 작게 만듭니다.

내가 지정한 '위치'로 이동하면 이러한 매개 변수를 전송하는 것이 좋습니다.


편집

그냥 나는 위치에 임의의 헤더를 보내도록 브라우저를 얻으려고 노력하지만, 아니에요,주의해야 할 (요청의 컨텍스트를 암시하기위한 모든 헤더가있는 경우 querystring 매개 변수처럼).

+0

어쨌든 무엇이 필요합니까? 아마도 유스 케이스가 우리에게 당신의 문제에 대한 더 나은 통찰력을 줄 것입니다. – Gumbo

답변

9

리디렉션 응답 자체에는 데이터가 없습니다. 검색어 매개 변수가있는 URL을 사용하여 리디렉션 할 수 있지만 새로운 '위치'는 이러한 매개 변수를 사용하는 방법을 알아야합니다.

+0

tvanfosson, 예 리디렉션에는 데이터가 포함되어 있지 않으며 모든 쿼리 매개 변수는 이해할 필요가있는 매개 변수입니다. 그러나 구체적으로 내가 알고 싶었던 것은 해당 매개 변수를 querystring. – meandmycode

+0

쿠키 예를 들어, 리디렉션에 의해 제거 된 쿠키를 보낸 경우 (리디렉션은 상대적입니다), 한 번에 이러한 유형의 리디렉션이 여러 번 발생하면 요청에서 쿠키가 다시 전송된다고 말하는 것이 현실적일까요? 후속 요청으로 만 전송되며 다른 요청과 섞이지 않습니다 (동일한 컴퓨터에서 (즉, 정확히 동일한 인스턴스에서 나를 리디렉션하는 동일한 URL에 도달했다고 상상해보십시오))? – meandmycode

+1

리디렉션과 대상 페이지가 동일한 호스트 이름에 있으면 예에서 리디렉션에 의해 전송 된 쿠키는 클라이언트가 수신하여 대상 페이지로 다시 보내야합니다. 예, 리디렉션이 설정된 쿠키를 설정하고 해당 쿠키가 전달되도록 할 수 있습니다. 그러나 쿠키는 교차 도메인에서 작동하지 않으므로 도메인 간 리디렉션의 경우 정보를 전달하려는 경우 URL 자체, 즉 쿼리 문자열에 넣는 것이 좋습니다. – thomasrutter

0

아니요, 불가능합니다. 고객에게 무언가를 강요 할 수는 없습니다. "이것은 올바른 위치는 아니지만 그 위치를 대신 사용해보십시오"라고 말할 수 있습니다. 그러나 클라이언트가 동일한 요청이나 다른 요청을 새 위치로 보낼지는 보장 할 수 없습니다. 그리고 그 다음 요청에서 새로운 헤더 필드를 새로운 위치에 추가하도록 클라이언트에게 명령하는 것도 불가능합니다.

+0

그게 전부예요. 브라우저가 임의의 헤더를 보내는 것보다 그다지 많지는 않았지만 보낼 수있는 'A'헤더가 있는지 궁금해했습니다. 예를 들어 브라우저에서 해당 URL에 쿼리 문자열 매개 변수를 보낼 수 있습니다. (URL에없는 다른 매개 변수를 보낼 수없는 이유는 무엇입니까?) – meandmycode

+0

그러면 보안 취약점이 발생할 수 있습니다. 공격자가 희생자가 특정 세션을 사용하도록 시도하는 세션 고정에 대해 생각해보십시오. 그는 "그 세션 아이디로이 세션 쿠키를 설정하십시오"라고 말할 수 있습니다. – Gumbo

+0

나는 그 인수를 믿을 지 모르겠다. 매개 변수 쿼리와 동일하다. 귀하의 사이트가 세션 식별자로 사용한다면 나쁜 것입니다. 이것은 순전히 클라이언트를 PRG 스타일로 리다이렉션하려고하는 것입니다. 원래 요청의 'ID'.. 내 시나리오에서 키는 순전히 사용자 당 요청 인스턴스를 식별하기 위해 존재합니다 .. 그래서 한 번에 양식에 여러 게시물이 발생한 경우 리디렉션을 식별 할 수 있습니다 .. 세션 사용 상태는이 형식으로 신뢰할 수 없습니다 .. 오늘 쿼리 문자열 매개 변수를 사용하여이 작업을 수행 할 수 있지만이 작업을 사용하는 것을 정말 싫어합니다. – meandmycode

관련 문제