이 두 코드는 근본적으로 다른 작업을 수행하지만, 어떤 경우에는 사용자가 관찰 한 행동이 매우 유사 할지라도.
<?php
header('Location: example.php?parameter');
?>
는 기본적으로이 또 다른 위치로 이동해야 브라우저를 말하는 서버의 방법입니다
이
은 서버 시작 리디렉션입니다. 브라우저는이를 무시할 수는 있지만이를 무시할 이유는 없습니다. 브라우저에이 재 지정이 임시 또는 영구적인지 또는 다른 조건이 있는지를 알려주는 추가 세부 정보를 응답에 추가 할 수 있습니다. 그러나 가장 단순한 서버는 "나는 여기에 당신을 위해 아무것도 가지고 있지 않습니다. 귀하의 정보를 얻기 위해 그곳으로 가십시오."라고 말하는 서버입니다.
<form action="example.php" method="post">
음, "클라이언트 시작"양식을 게시의 실제 행동에 브라우저에서 온다 :
이
는 클라이언트가 시작한 폼 POST입니다. 아마도 서버가 HTML 태그를 클라이언트에 제공하여이를 수행하도록 지시했지만 클라이언트는 원할 경우이를 자유롭게 변경할 수 있습니다. 그러나 그렇게 할 이유는 없습니다. 여기에서 요점은 클라이언트가 데이터를
example.php
으로 보내는 수단이라는 것입니다. 리디렉션과는 아무 관련이 없습니다. 서버의 특정 리소스로 데이터를 보내는 것입니다.
서버는 리디렉션, 렌더링 된 페이지 또는 다른 응답으로 해당 데이터에 응답 할 수 있습니다.
여러 가지 방법을 조합하여 사용할 수 있습니다. page1.php
및 page2.php
이 있다고 가정 해 보겠습니다. page1
에는 양식이 있고 그 양식이 제출 된 후 사용자는 page2
을 보길 원합니다. 이것은 사용자가 관찰 한 결과를 구별 할 수없는 부분입니다.
page1
은 page2
에 게시 할 수 있으며 page2
은 제출 된 데이터를 처리하고 표시 할 수 있습니다. 또는page1
은 page1
에 게시하고 제출 된 데이터를 처리하고 page2
으로 리디렉션 할 수 있습니다. 최종 사용자에게는 본질적으로 차이가 없습니다. 주요 차이점은 코드를 구성하는 방법에 있습니다. 그 점에서, 개인적 취향이 중요합니다. 그러나이 도구 중 하나를 사용하는 유일한 시나리오는 아닙니다. 예를 들어 완전히 다른 이유로 완전히 다른 페이지에 값을 제출하거나 클라이언트가 완전히 알 수없는 일부 서버 측 이유로 페이지 요청을 리디렉션 할 수 있습니다.
더 복잡한 웹 응용 프로그램을 개발할 때 어떤 상황에서는 특정 패턴이 잘 작동하고 개인적 선호도는 해당 패턴과 일치하기 시작합니다. 결국 이들은 행동을 수행하는 도구 일뿐입니다 (클라이언트를 다른 위치로 리다이렉트하고 서버에 데이터를 보내면됩니다). 중요한 패턴과 관행은 도구를 사용하기 만하면됩니다.
예 알아요. 그래서 제가 묻는 이유가 아닙니다. 나는 php보다는 오히려 dan html로 이것을하는 것을 선호하지만 사용하고있는이 방법에 대한 단점이있다. 이 방법을 사용하는 동안 리디렉션을 사용해야 할 때 가능하지는 않지만 그 외에는 리디렉션을 사용해야한다는 것을 이해할 수 있습니다. 다른 이유가 있습니까? –