정적 파일 (CSS, 이미지, JavaScript, ECC)을 하위 도메인에 삽입해야하는 이유는 무엇입니까?


29

왜 이렇게 많은 크고 작은 사이트가 media.example.com또는 같은 하위 도메인에 정적 파일 (CSS, 이미지, JavaScript, ECC)을 삽입 s2.static.example.com합니까?

장점은 무엇입니까? 왜 같은 디렉토리가 example.com/media/아닌가?

답변:


24

적어도 세 가지 가능한 (좋은) 이유가 있습니다.

  • 다른 컴퓨터를 사용하여 정적 콘텐츠 제공
    • 일부 CDN 포함
  • 다른 웹 서버를 사용하여 정적 컨텐츠 제공
    • 더 가볍고 빠른 것
    • 정적 컨텐츠를 제공하기 위해 전체 PHP / .NET / JAVA 서버가 필요하지 않습니다!
  • 다른 도메인 이름을 사용하면 기본 도메인에서 사용되는 쿠키를 가질 수 없습니다

올바르게 기억하면 StackOverflow에서 수행되는 작업입니다.


15

내가 생각하는 주된 이유는 쿠키 때문입니다.

쿠키는 모든 요청 과 함께 전송됩니다. 쿠키 데이터가 2kb이고 페이지에 20 개의 이미지를로드한다고 가정하겠습니다.

그것은 추가 40kb 의 데이터이며, 한 달 동안 가지고있는 페이지 뷰 수에 곱하면 쓸모없는 것으로 손실 된 대역폭의 양에 놀랄 수 있으며 대역폭이 무료가 아닙니다 ...

또한 최상위 도메인에 설정된 쿠키는 하위 도메인에 대한 모든 요청을 통해 전송되며 쿠키가없는 도메인 에서 정적 구성 요소를 호스팅 할 새 도메인을 구입하는 것이 좋습니다 .

예를 들어 StackOverflow는 sstatic.net, Yahoo는 yimg.com, YouTube는 ytimg.com, Amazon은 images-amazon.com등을 사용합니다 .

이것 좀 봐 :


8

위의 답변 중 일부에 추가하려면 일부 웹 브라우저는 모든 도메인에서 동시에 두 개의 파일 만 다운로드 할 수 있습니다.

다른 호스트 이름 (또는 이름 (예 : a.domain, b.domain) c.domain) 에서 정적 컨텐츠를 제공 하면 이러한 이전 브라우저가 더 많은 파일을 병렬로 다운로드 할 수 있습니다.


2

... 구성 요소에 쿠키가없는 도메인을 사용하십시오.

브라우저가 정적 이미지를 요청하고 요청과 함께 쿠키를 보내면 서버는 해당 쿠키를 사용하지 않습니다. 따라서 정당한 이유없이 네트워크 트래픽 만 생성합니다. 쿠키없는 요청으로 정적 구성 요소를 요청해야합니다. 하위 도메인을 만들고 모든 정적 구성 요소를 호스팅하십시오.

이 조언은 웹 사이트 속도 향상을위한 Yahoo의 모범 사례 에서 발췌 한 것입니다 .


0

http 요청이 더 작고 서버가 빠르게 실행되고 요청 된 파일이 매우 짧은 시간 내에 제공되어 결국 가장 빠른 페이지로드로 이어질 수 있기 때문에


이것은 다른 답변이 아직 말하지 않은 것을 추가하지 않습니다. 쿠키가 없기 때문에 요청이 왜 더 작은 지조차 말하지 않으므로이 답변은 다른 많은 것보다 나쁩니다.
Stephen Ostermiller
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.