Điểm quan trọng của việc có www www trong một URL là gì?


238

Ngoài lý do lịch sử, có lý do nào để có www www trong một URL không?

Tôi nên tạo một chuyển hướng vĩnh viễn từ www.xyz.comđến xyz.com, hoặc từ xyz.comđến www.xyz.com? Bạn muốn đề xuất cái nào và tại sao?



Ngược lại, những gì điểm không. Đối với các mục đích cookie và tên miền phụ trên sự hiện diện web thành công, thật hữu ích để tách ra một số quy trình.
Phòng thí nghiệm Fiasco

Câu trả lời này , mặc dù không liên quan trực tiếp, có vẻ liên quan.
Skippy le Grand Gourou

Câu trả lời:


202

Một trong những lý do tại sao bạn cần wwwhoặc một số tên miền phụ khác phải giải quyết vấn đề DNS và bản ghi CNAME.

Giả sử cho các mục đích của ví dụ này rằng bạn đang điều hành một trang web lớn và ký hợp đồng lưu trữ vào CDN (Mạng phân phối nội dung) như Akamai. Những gì bạn thường làm là thiết lập bản ghi DNS cho trang web của bạn dưới dạng CNAME tới một số akamai.comđịa chỉ. Điều này mang lại cho CDN cơ hội cung cấp địa chỉ IP gần với trình duyệt (theo thuật ngữ địa lý hoặc mạng). Nếu bạn đã sử dụng bản ghi A trên trang web của mình, thì bạn sẽ không thể cung cấp tính linh hoạt này.

Điểm khó hiểu của DNS là nếu bạn có bản ghi CNAME cho tên máy chủ, bạn không thể có bất kỳ bản ghi nào khác cho cùng máy chủ đó. Tuy nhiên, tên miền cấp cao nhất của bạn example.comthường phải có bản ghi NS và SOA. Do đó, bạn cũng không thể thêm bản ghi CNAME cho example.com.

Việc sử dụng www.example.comcung cấp cho bạn cơ hội sử dụng CNAME cho wwwcác điểm đó vào CDN của bạn, trong khi để lại các bản ghi NS và SOA cần thiết example.com. Bản example.comghi thường sẽ có bản ghi A để trỏ đến máy chủ sẽ chuyển hướng đến www.example.comsử dụng chuyển hướng HTTP.


3
Bạn có thể cung cấp bản ghi CNAME "mặc định" trỏ đến CDN, bạn không phải sử dụng "www". Điều này cho phép máy chủ DNS của bạn có các RR RR, NS, CNAME, v.v ... cho cùng một tên miền.
Chris S

1
Tại sao không ai đề cập đến ALIAS(hoặc ANAMEhồ sơ) trong loại chủ đề này? Nó không đạt được kết quả tương tự như CNAME trên nudedomain (ngoại trừ vấn đề cookie ...)?
Augustin Riedinger

3
@AugustinRiedinger: Bản ghi ANAME không phải là loại DNS RR tiêu chuẩn. Họ là độc quyền cho các nhà cung cấp dịch vụ cụ thể.
Greg Hewgill

Nhưng điều này có tạo ra bất kỳ vấn đề tương thích hoặc một cái gì đó? Có bất kỳ lý do nào chúng ta không nên sử dụng chúng (ngoài việc không phải là tiêu chuẩn mà là độc quyền)?
Augustin Riedinger

2
@AugustinRiedinger nó không được hỗ trợ trên hầu hết các máy chủ DNS . Nhưng nếu nhà cung cấp của bạn có máy chủ DNS hỗ trợ các tính năng này thì điều đó sẽ không gây ra bất kỳ vấn đề nào với khách hàng.
Koen.

104

Lưu ý: Kể từ khi phê chuẩn và triển khai (bởi tất cả các trình duyệt hiện tại, ngoại trừ MSIE 11 , xem các bình luận) của RFC 6265 vào năm 2011, điều sau đây không còn chính xác nữa, vì các cookie theo mặc định không bao giờ được đặt trên các tên miền phụ.

Trong lịch sử , một lý do kỹ thuật tốt để thực hiện www.example.comchính tắc là cookie của một tên miền chính (nghĩa là example.com) đã được gửi đến tất cả các tên miền phụ.

Vì vậy, nếu trang web của bạn sử dụng cookie, chúng sẽ được gửi đến tất cả các tên miền phụ của nó.

Bây giờ, điều này thường có ý nghĩa nhưng nó có hại tích cực nếu bạn chỉ muốn tải xuống tài nguyên tĩnh vì nó chỉ lãng phí băng thông. Xem xét tất cả các biểu định kiểu và hình ảnh trên trang web của bạn: thông thường, không có lý do gì để gửi cookie đến máy chủ khi yêu cầu tài nguyên hình ảnh.

Do đó, một giải pháp tốt là sử dụng tên miền phụ cho tài nguyên tĩnh, chẳng hạn như static.example.comđể tiết kiệm băng thông bằng cách không gửi cookie. Tất cả các hình ảnh và tải về tĩnh khác có thể được tải xuống từ đó. Nếu bây giờ bạn sử dụng www.example.comcho nội dung động, điều này có nghĩa là cookie chỉ phải được gửi đến www.example.comchứ không phải gửi đến static.example.com.

Tuy nhiên, nếu example.comtrang web chính của bạn, thì cookie sẽ được gửi đến tất cả các tên miền phụ, bao gồm static.example.com.

Bây giờ điều này không phù hợp với hầu hết các trang web nhưng việc thay đổi URL chính tắc của bạn sau này không phải là một ý tưởng hay vì vậy một khi bạn đã giải quyết example.comthay vì www.*, về cơ bản bạn bị mắc kẹt với nó.

Một cách khác là sử dụng một URL hoàn toàn khác cho tài nguyên tĩnh. Ví dụ sử dụng Stack Overflow sstatic.net, sử dụng YouTube, ytimg.comv.v.


11
Nhân tiện, tôi thực sự không thích www.xlà URL chính tắc nên cá nhân tôi có thể sẽ sử dụng một URL khác cho tài nguyên tĩnh nếu tôi thiết kế một trang web lớn.
Konrad Rudolph

1
@RobinWinslow Nhưng cài đặt cookes domain=example.comsẽ đặt cookie trên miền apex và trên các tên miền phụ , và một cách để tránh điều này là không sử dụng miền apex cho HTTP. Mặc dù, đã đồng ý, một cách khác chỉ đơn giản là không chỉ định domainkhi đặt cookie. Tôi tự hỏi liệu điều này đã thay đổi kể từ khi tôi viết câu trả lời của mình (trước RFC 6265 có liên quan !) Nhưng tôi không thể bận tâm tìm kiếm nó ngay bây giờ.
Konrad Rudolph

2
Có vẻ như hành vi mà tôi mô tả đã xảy ra kể từ ít nhất là năm 2011 khi RFC 6265 được viết (giống như một bản tóm tắt về hành vi trình duyệt hiện tại hơn là một tuyên bố về cách chúng nên hoạt động). Đến bây giờ, chúng ta có thể giả định rằng tất cả các trình duyệt sẽ theo dõi nó. Xem stackoverflow.com/questions/1062963/ đábayou.io/draft/cookie.domain.html . Vì điều này, tôi nghĩ rằng câu trả lời của bạn đã sai lệch trong ít nhất 7 năm, mặc dù nó có thể chính xác trong một số trường hợp tại thời điểm viết. Bạn có thể vui lòng cập nhật nó để làm rõ sự thật này?
Robin Winslow

2
@RobinWinslow Vâng, sẽ làm.
Konrad Rudolph

2
Thêm bằng chứng cho thấy IE11 làm điều xấu: developer.microsoft.com/en-us/microsoft-edge/pl
Robin Winslow

12

wwwlà một tên miền phụ thường được sử dụng cho máy chủ web trên một tên miền cùng với các mục đích khác cho các mục đích khác, mailv.v. Ngày nay, mô hình tên miền phụ là không cần thiết; nếu bạn kết nối với một trang web trong trình duyệt, bạn sẽ nhận được trang web hoặc gửi thư đến máy chủ sẽ sử dụng dịch vụ thư của nó.

Sử dụng wwwhay không là vấn đề sở thích cá nhân. Quan điểm đối lập có thể được tìm thấy tại http://no-www.org/http://www.yes-www.org/ - tuy nhiên, tôi tin rằng điều đó wwwlà không cần thiết và chỉ cần thêm nhiều hành trình vào URI.

Hầu hết các máy chủ đều gửi cùng một trang, nhưng không chuyển hướng. Đối với mục đích SEO, chọn một, sau đó lấy cái khác để chuyển hướng đến nó. Ví dụ, một số mã PHP để làm điều này:

if (preg_match('/www/', $_SERVER['SERVER_NAME'])) {
  header("Location: http://azabani.com{$_SERVER['REQUEST_URI']}");
  exit;
}

Tuy nhiên, một số lý do thúc đẩy việc sử dụng wwwtên miền phụ được thực hiện bởi những người trả lời khác cũng rất tuyệt, chẳng hạn như không gửi cookie đến máy chủ tĩnh (tín dụng Konrad Rudolph ).


2
Có vẻ như no-www.org đã trở lại một trang chưa bán để bán trong đó yes-www.org vẫn đang hoạt động mạnh mẽ. Tôi đoán rằng giải quyết nó. Mọi người sử dụng "www" từ bây giờ.
nunya

9

Nó khá là lịch sử. Ngày xưa chúng ta thường có www.example.com, ftp.example.com, hình ảnh.example.com, uk.example.com, v.v ... có vẻ như là một điều hợp lý để làm và cung cấp một phương pháp đơn giản để truyền tải giữa may chủ.

Những ngày này tôi sẽ chỉ đi ví dụ.com cho trang web chính và chuyển hướng phiên bản www đến đó.

Các công cụ Google Webmaster cho phép bạn chỉ định tên miền ưa thích của mình , vì vậy hãy đảm bảo bạn cũng sử dụng các tên miền đó.

Xem thêm:
https://stackoverflow.com/questions/1109356/www-or-not-www-what-to-choose-as-primary-site-name
https://stackoverflow.com/questions/1884157/to- www-hoặc-không-đến-www


8

Nếu bạn sắp có tên miền phụ cho các mục đích khác (ví dụ blog), bạn có thể muốn phân biệt các trang web và có wwwtiền tố cho trang web thông thường. Mặt khác, điều quan trọng duy nhất là chọn một trong hai và bám vào nó (vì lý do SEO).


1
Tôi không thể tìm thấy tài liệu tham khảo tại thời điểm này, nhưng nó cũng có thể có tác dụng đối với chính sách xuất xứ tương tự.
Kobi

Vâng, nó sẽ không may. Bạn không thể AJAX đến www.example.comtừ example.comhoặc ngược lại mà không có thứ gì đó như JSONP.
Delan Azabani

7

Tôi sẽ làm đầu tiên. Quy wwwước này xuất phát từ những ngày đầu của HTTP, nơi www.cmu.edu và cmu.edu rất có thể là các máy khác nhau.


10
trong 'những ngày đầu', bạn hiếm khi thấy một bản ghi A cho một tên miền - có thể nó có bản ghi MX, nhưng bạn hiếm khi có một máy chủ lưu trữ ở đó.
Joe H.

2

Đây là một quan điểm nhỏ khác.

Khi không có www, có một nhược điểm nhỏ khi nói đến phương tiện dựa trên văn bản, dù được in hay trực tuyến và điều đó khiến nó được công nhận là địa chỉ web. Trong bản in, thông thường khá rõ ràng là example.com là một địa chỉ web và bạn có thể thêm các kiểu chạm để làm nổi bật điều đó. Nhưng văn bản đơn giản trực tuyến? Không dễ thế đâu. Cơ hội là nếu bạn gửi một tin nhắn văn bản đơn giản - cho dù email, tweet, bài đăng trên Facebook, SMS hay bất cứ điều gì - nó sẽ nhận ra một URL bắt đầu bằng http: // hoặc www. nhưng sẽ không nhận ra một mà không có một trong hai. Vì vậy, để làm cho URL thành một liên kết có thể nhấp, bạn phải đặt www. hoặc http: // ở mặt trước và của hai, www. ngắn hơn, ít lộn xộn hơn để nhìn và dễ đọc hơn.


2
http://example.com/là hoàn toàn đủ điều kiện trong khi www.example.comkhông. Tôi thích cách tiếp cận đầy đủ vì nó là luôn luôn dễ nhận biết như một URL bất kể cho dù đó là https://example.uk/hay https://blog.example.eu/hay bất cứ điều gì. Nó phù hợp với việc chỉ định giao thức của một trang web an toàn là HTTPS; www.example.comchỉ là một miền và không nói gì về giao thức nào nên sử dụng để truy cập nó.
James Haigh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.