웹 경험에서 우리는 종종이 상황에 직면합니다. 즉, 현재 웹 페이지가 위치한 도메인 이름 외부에 Baidu Alliance, Google Alliance 및 도메인 이름 파일을 호출 할 때 매우 심각한 요청 지연이 발생합니다. 그렇다면이 심각한 요청 지연 현상을 해결할 수있는 방법이 있습니까? DNS 프리 페치 란 무엇입니까?
DNS는 도메인 Name-to-IP 매핑을 구현합니다. 도메인 이름을 통해 사이트에 액세스하려면 모든 요청에 대해 DNS 해결이 필요합니다. 현재 각 DNS 해상도는 일반적으로 200ms 미만입니다. DNS 해상도의 시간 소모적 문제에 따라 일부 브라우저는 DNS 프리 페치를 사용하여 액세스 유창성을 향상시킵니다.
DNS Prefetch는 DNS 사전 해상도 기술입니다. 웹 페이지를 탐색 할 때 브라우저는 웹 페이지를로드 할 때 웹 페이지에서 도메인 이름을 해결하고 캐시합니다. 이렇게하면 현재 웹 페이지에서 연결을 클릭 할 때 DNS를 해결하고 사용자 대기 시간을 줄이고 사용자 경험을 향상시킬 필요가 없습니다.
현재 DNS 프리 페치를 지원하는 브라우저에는 Google Chrome 및 Firefox 3.5가 포함됩니다.
브라우저 측에서 특정 도메인 이름을 구문 분석하려면 페이지에 링크 태그를 추가하여 구현할 수 있습니다. 예를 들어:
<link rel = dns-prefetch href = http : //img.vevb.com/>
브라우저 쪽이 도메인 이름을 사전-재고할지 여부를 제어하려면 HTTP 헤더의 x-dns-prefetch-control 속성을 통해 제어 할 수 있습니다.
불행히도 Google Chrome 및 Firefox3.5 만 위의 태그를 지원합니다.
일반적으로,이 지연의 이유는 상대방 웹 사이트의 대역폭 또는로드가 아니기 때문에이 상황을 정확하게 일으키는 원인은 무엇입니까? Zalan은 DNS 해상도 속도가 자원 지연의 가장 큰 원인 일 가능성이 높기 때문에 DNS의 문제라고 가정하면서 추측하려고했습니다. 따라서 Zaolan은 페이지 헤더에 다음 코드를 추가했습니다 (DNS Pre-Parser로 사용).
<meta http-equiv = x-dns-prefetch-control content = on />
<link rel = dns-prefetch href = http : //bdimg.share.baidu.com/>
<link rel = dns-prefetch href = http : //nsclick.baidu.com/>
<link rel = dns-prefetch href = http : //hm.baidu.com/>
<link rel = dns-prefetch href = http : //eiv.baidu.com/>
<link rel = dns-prefetch href = http : //img.vevb.com/>
효과는 매우 좋으며 (테스트 브라우저는 IE8), 다른 페이지를 열 때 바이두 공유 버튼의로드가 크게 향상되었습니다!
DNS-Prefetch에 대해 간단히 배우겠습니다.
인터넷의 기본 프로토콜로서 웹 사이트 최적화 직원이 DNS를 쉽게 간과하는 것으로 보입니다. 이제 대부분의 새로운 브라우저는 DNS 해상도에 최적화되었습니다. 일반적인 DNS 해상도는 20-120 밀리 초가 걸립니다. DNS 해상도 시간과 숫자를 줄이는 것은 최적화하는 좋은 방법입니다. DNS Prefetching 은이 속성의 도메인 이름으로 사용자가 링크를 클릭하여 백그라운드에서 해결할 필요가 없습니다. 도메인 이름 해상도 및 컨텐츠 로딩은 직렬 네트워크 작업 이므로이 방법은 사용자의 대기 시간을 줄이고 사용자 경험을 향상시킬 수 있습니다.
웹 사이트의 브라우저의 첫 번째 도메인 이름 DNS 해상도 및 검색 프로세스는 다음과 같습니다.
브라우저 캐시 시스템 캐시-루터 캐시 -ISP DNS 캐시 재구성 검색
도메인 이름 DNS 해상도 검색 프로세스
Chrome에는 DNS 프리 페치 기술이 내장되어 있으며 Firefox 3.5 도이 기능을 소개합니다. Chrome and Firefox 3.5 자체는 그에 따라 DNS 사전 해상도를 최적화 했으므로 DNS 사전 해상도 설정의 부작용 중 하나는 Chrome 브라우저 및 Firefox Firefox 3.5 브라우저의 사용자 경험을 줄일 수 있다는 것입니다.
구현 준비 :
1. 메타 정보를 사용하여 브라우저에 현재 페이지에 DNS에 의해 사전에 전달되어야한다는 사실을 알려줍니다.
2. 페이지 헤더에서 링크 태그를 사용하여 사전 parse dns : <link rel = dns-prefetch href = http : //bdimg.baidu.com/>
참고 : DNS-Prefetch는주의해서 사용해야합니다. 여러 페이지에서 사전 해석되는 DNS를 반복하면 반복 된 DNS 쿼리의 수가 증가합니다.
추신 : DNS 사전 해상도는 주로 웹 사이트 프론트 엔드 페이지 최적화에 사용됩니다. SEO에서의 역할은 아직 확인되지 않았지만 사용자 경험 향상의 일부로 rel = dns-prefetch는 발견 할 가치가있을 수 있습니다.