2013-07-23 1 views
0

최근에 나는 Startup Engineering에서 수업을 들었습니다.일반 리디렉션이 사용되는 이유를 이해하십시오.

DNS 시스템 주제로 작업하면서 사이트는 리디렉션을 사용하여 다른 도메인 이름을 주 도메인으로 지정하는 경향이 있다는 것을 알았습니다. google.com에 액세스 할 때

예를 들어, 구글은 www.google.com로 리디렉션 사용 위치로 리디렉션하는 정보를 얻을 수로

내가 아는 바로는
> curl -I google.com 

HTTP/1.1 301 Moved Permanently 
Location: http://www.google.com/ 
... 

, 천천히 일을 리디렉션, 그것은 두 번 가기 위해 신호를한다 웹 서버와의 거리가 길어 지므로 전반적인 대기 시간이 늘어납니다.

브라우저가 리디렉션 정보를 캐시하므로 다음 google.com 쿼리가 브라우저에서 즉시 리디렉션됩니다. 하지만 첫 번째 문제는 여전히 서버에서 리디렉션에 대한 응답을 얻어야합니다.

우리는 DNS 수준에서 동일한 것을 달성 할 수 있다고 생각합니다. 우리는 google.com에 대한 CNAME 레코드가 www.google.com으로 이어질 수 없다는 것을 알고 있습니다 (모든 이메일 [email protected][email protected]으로 바꿀 것이므로). 하지만 DNS 수준에서 리디렉션을 사용할 수 있습니다. 또는 DNS ALIAS. 마지막 단계로 자바 스크립트를 사용하여 브라우저의 주소 표시 줄에있는 URL을 google.com에서 www.google.com으로 변경할 수 있습니다. 나에게 이것은 리디렉션 사용과 동일한 결과를 가져 오지만 리디렉션을 피할 수 있으며 결과 페이지를 더 빨리 제공 할 수 있습니다.

여전히 일반 리디렉션이 사용되는 이유가 있어야합니다.

그렇다면이 이유는 무엇입니까? 리디렉션을 사용하면 어떤 이점이 있습니까? DNS 수준에서 리디렉션의주의 사항은 무엇입니까?

답변

0

자바 스크립트 can't change address in the browser address bar beyond same origin 인 것 같습니다.

따라서 google.comwww.google.com으로 변경하는 유일한 방법은 리디렉션입니다.

DNS 수준의 모든 리디렉션과 ALIAS는 웹 서버의 최종 IP 주소를 사용자에게 반환하는 사용자 DNS 서버 측에서 발생합니다. 브라우저에서 HTTP를 통해 서버로 보낸 호스트 이름은 훨씬 높은 수준의 OSI 모델입니다. 그리고 여전히 웹 서버는 원래의 호스트 이름을받습니다. 브라우저 주소 표시 줄에서 URL을 변경하는 유일한 방법은 새 URL로 리디렉션하는 것입니다.

1

리디렉션은 RFC 1912에 사용되므로 DNS 영역의 정점에서 CNAME 레코드를 사용할 수 없습니다. 여러 DNS 공급자가 DNS 에지 컴퓨터에서 서버 측 리디렉션을 사용하여 쿼리를 해결하기 위해 "DNS ALIAS"와 같은 기능을 구현했지만 301/302 리디렉션은 HTTP 트래픽을 다른 FQDN으로 차단하는 방법입니다. 301/302 리디렉션의 사용으로 인한 대기 시간은 DNS 공급자마다 다를 수 있습니다.

관련 문제