“게시 주셔서 감사합니다. 리디렉션되는 동안 기다리십시오.” 필요합니까? 예를 들어 사용자가 등록하거나 무언가를 게시

게시 해 주셔서 감사합니다. 리디렉션되는 동안 기다리십시오.

자동으로 리디렉션되지 않으면 여기를 클릭하십시오.

특히 90 년대 또는 2000 년대 초에 웹을 사용할 때 이와 같은 메시지에 익숙 할 것입니다. 내 프로젝트에서, 예를 들어 사용자가 등록하거나 무언가를 게시 한 후 리디렉션되는 동안 사용자가 2-3 초 동안 기다리게하는 이유를 찾지 못했습니다. 그러나이 패턴은 PHPBB와 같은 인기있는 웹 소프트웨어에서도 항상 나타납니다.

내 질문은, 리디렉션이 여전히 현대 (아약시) 웹 개발에 필요한 장소 / 필요가 있습니까? 이와 같이 리디렉션을 절대적으로 요구하여 궁극적으로 사용자를 성가 시게하는 상황이 있습니까? 기술적 인 이유는 무엇 입니까? 리디렉션이 필요한 경우 즉시 리디렉션하지 않는 이유는 무엇입니까?



답변

이와 같이 리디렉션을 절대적으로 요구하여 궁극적으로 사용자를 성가 시게하는 상황이 있습니까? 기술적 인 이유는 무엇입니까?

가장 일반적인 의도 (일반적으로 데이터베이스에 새 레코드를 작성하고 지불 트랜잭션을 처리하는 요청의 경우)는 사용자가 “새로 고침”단추를 누르고 요청을 다시 게시해야하는 중복 요청을 방지하는 것입니다.

리디렉션은 여전히 ​​현대 (아약시) 웹 개발에 필요한 장소 /가 있습니까?

자바 스크립트를 사용하지 않도록 설정 한 사용자에게 요청이 무시되거나 잘못 처리 될 것임을 알리는 경우 ( “두 번 이상 제출하지 마십시오!” 메시지가 떠오를 것입니다.) JS를 사용하지 않도록 설정 한 사용자는 결제 부서에서 때때로 이중 청구 불만이 표시되지 않도록하기 때문에 많은 인터페이스에서 일부 리디렉션이 계속 구현됩니다.

리디렉션이 필요한 경우 즉시 리디렉션하지 않는 이유는 무엇입니까?

여러 양식 제출을 방지하는 것이 목표 인 경우 리디렉션 즉시 발행 해야 합니다. 시간이 초과 된 리디렉션의 경우 서버가 느리거나 세션 기반 잠금을 고려하지 않았거나 시도하려는 경우 좀 난해한 문제를 해결하십시오.


답변

우선 Location 헤더가 주어지면 모든 브라우저가 리디렉션되는 것은 아닙니다. 둘째, 모든 브라우저가 비활성화되어 있기 때문에 Javascript로 리디렉션하지는 않습니다. 셋째, 모든 브라우저가 meta-refresh 태그를 지원하지는 않습니다. 이러한 경우는 매우 드물기 때문에 중요하지 않습니다. 그러나 그렇게하더라도 내가 생각하는 모든 방법을 겹칠 수 있습니다.

PHPBB 페이지가하는 방식 (5 초간 대기)은 전혀 필요하지 않습니다. 즉시 리디렉션해야하며 그렇지 않은 경우 헤더를 보낸 후 HTML 페이지 (메타 새로 고침 및 Javascript가 있고 링크가있는 텍스트)가 표시됩니다. 제대로 프로그래밍 된 경우이 페이지가 일반 브라우저에서 실제로 표시 될 가능성은 거의 없습니다.


답변

항상 올바른 HTTP 상태 코드 (예 : 301 또는 302- http ://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)를 사용하여 응답 헤더에 리디렉션을 보내면 즉시 리디렉션됩니다. 누군가가 “리디렉션 된 페이지를 기다리는 동안 기다려주십시오”라는 메시지를 표시하는 좋은 기술적 이유를 알지 못합니다.


답변

이 작업을 수행하는 주된 이유는 리디렉션 된 사이트에 레코드가 만들어지기 때문입니다. 이 페이지는 Google 웹 로그 분석을로드 할 수 있지만 데이터는 웹 로그에있을 것입니다.

HTTP 헤더를 사용하여 리디렉션을 보내면 브라우저는 원래 사이트에 대한 추가 요청없이 다른 사이트로 이동합니다. 자바 스크립트 기반 추적은 이러한 이탈을 포착 할 수 있지만 사이트 소유자는 추적 할 수있는 더 나은 기회를 제공합니다.

경우에 따라 리디렉션되는 것보다 사용자에게 고지 사항을 제공 할 수도 있습니다. 이는 규제 산업에서 일하는 웹 마스터에게 특히 중요합니다. 은행이나 제약과 같은 규제 된 산업에서 일하지 않으면 이러한 요구 사항에 대해 크게 감사하지 않을 것입니다.


답변

또한 뒤로 단추가 제대로 작동 할 수 있습니다.


답변