2009-10-08 2 views
0

웹 서비스로 작은 컨텐츠 서버를 작성하고 있습니다. 2 개의 유닛이 있습니다 - 하나는 컨텐츠를 요구하는 어플리케이션을 인증하고 인증이 성공하면 요청을 컨텐츠를 제공하는 다른 유닛으로 전달합니다.CGI를 사용할 때 요청 전달이 가능합니까?

  • [1]이 사용하는 CGI를 스크립트를 수행 할 경우, JSP의 동등한 있습니다 : CGI 앞으로은?
  • [2] 전달이 불가능한 경우 클라이언트 응용 프로그램에서 두 번째 단위를 직접 요청할 수 없어야한다고 가정합니다. 이 작업을 수행하는 올바른 방법은 무엇입니까?

답변

0

당신이 찾고있는 개념은 HTTP redirect입니다. 여기서 서버는 브라우저의 요청에 대한 응답을 보내어 다른 URL에서 새 페이지를 가져 오도록 브라우저에 알려줍니다.

CGI는 jsp : forward처럼 HTTP 리디렉션을 할 수 있습니다. 올바른 HTTP 헤더 만 출력하면됩니다.

HTTP 헤더에서 302 응답 코드를 반환하고 브라우저가 다음에 위치해야하는 위치 URL을 제공해야합니다.

HTTP/1.1 302 Redirect 
Location: http://www.example.org/ 

이 헤더 URL http://www.example.org/에서 페이지를 가져 오지 브라우저를 말할 : 당신의 CGI 스크립트 출력을 헤더의 이러한 종류가있다.

+0

아니요 리디렉션을 찾고 있지 않습니다. jsp : forward의 경우 요청은 서버 내에서 내부적으로 전달되며 클라이언트는이를 인식하지 못합니다. URL은 클라이언트에서도 변경되지 않습니다. – sriramptr

2

또 다른 시도, 당신은 HTTP 후 리디렉션하지 않기 때문에 ...

짧은 대답은 : 네, 가능합니다.

그러나 사용하는 도구에 따라 크게 달라질 수 있습니다. 어떤 웹 서버 및 CGI 스크립팅 언어를 사용하고 있습니까?

CGI 스크립트는 실제로 원하는대로 할 수 있습니다. 예를 들어 다른 CGI 스크립트의 코드를 실행할 수 있습니다. 따라서, 그들은 당신이 찾고있는 행동을 제공 할 수 있습니다.

CGI (Common Gateway Interface)은 웹 서버가 CGI 스크립트를 시작하고 환경 변수를 통해 스크립트 입력 데이터를 제공하는 방법을 설명합니다. CGI는 또한 스크립트가 웹 서버에 데이터를 반환하는 방법을 설명합니다. 그게 다야.

인증 스크립트가 일부 작업을 다른 스크립트에 위임하려면 원하는대로 승인 스크립트를 구현해야합니다. CGI 프로토콜은 여기서 도움이되지 않습니다.

+0

+1은 CGI가 스크립트가 서버와 통신하는 방법을 설명한다는 점을 지적합니다. – Powerlord

+0

@ 주하 +1 해명 해 주셔서 감사합니다. – sriramptr