So sánh tốc độ - liên kết đường dẫn tuyệt đối và tương đối


8

Giả sử tôi muốn liên kết đến thư mục mẹ ( http://example.com/library/) từ thư mục con ( http://example.com/library/html/basics/).

Liên kết đến thư mục mẹ có thể là:

  • href="../../"
  • href="https://webmasters.stackexchange.com/library/"
  • href="http://example.com/library/"

Có sự khác biệt về tốc độ dựa trên cách tôi viết liên kết không? Tôi không hỏi về tốc độ tải trang web, nhưng nếu có sự khác biệt đáng chú ý trong khi di chuyển đến thư mục.


4
Tại sao bạn nghĩ rằng sẽ có một sự khác biệt trong việc duyệt qua các thư mục? Theo như máy chủ có liên quan, đó chỉ là một cú hích, người dùng sẽ không thực sự "di chuyển" từ thư mục này sang thư mục khác - họ chỉ yêu cầu tài nguyên khác. Cho dù ai đó đi đến example.comtrước và sau đó example.com/library/books/fiction/1984.htmlcó hoặc không "đi qua" tất cả các con đường đều không liên quan. Và hãy nhớ rằng bạn sẽ có nhiều người dùng - một người có thể yêu cầu thư mục cơ sở, trong khi một người khác được lồng sâu và máy chủ sẽ thực hiện cùng một công việc.
VLAZ

1
Tất cả 3 URL đó đều giống hệt nhau khi có yêu cầu HTTP, do đó, liên quan đến máy chủ, không có sự khác biệt - trình duyệt phải giải quyết yêu cầu http://example.com/library/trong cả 3 trường hợp, nếu không thì đơn giản là không hợp lệ.
MrWhite

Một điều bị bỏ lỡ cho đến nay là hiệu quả trong việc duy trì trang web. Việc sử dụng /library/có những ưu điểm sau so với các tùy chọn khác: bạn không cần cập nhật tất cả các liên kết của mình nếu bạn thay đổi tên miền hoặc chuyển sang SSL ở mọi nơi; nếu bạn thay đổi tên thư mục hoặc di chuyển thư mục con bạn có thể tìm và thay thế đường dẫn một cách dễ dàng, tìm ra những gì cần thay đổi từ ../ .. vv
Zhaph - Ben Duguid

Câu trả lời:


9

Hiệu ứng cho trình duyệt:

Mặc dù điều này có vẻ như một chút công việc cho trình duyệt web, nhưng về mặt kỹ thuật nó không tạo ra nhiều sự khác biệt. Các trình duyệt quá nhanh để xử lý các cấu trúc url tương đối này và thực hiện cuộc gọi đến máy chủ ứng dụng

Hiệu ứng cho Máy chủ ứng dụng:

Không, vì nó cần trả về tệp được yêu cầu (liên kết tương đối / tuyệt đối cuối cùng ánh xạ tới một đường dẫn web)

Ảnh hưởng đến kích thước trang:

Có, sẽ có một số giảm kích thước (một lần nữa không phải là điều gì đó sẽ tạo ra sự khác biệt lớn đối với hiệu suất trang của bạn có thể đạt được bằng thứ gì đó như mã hóa nội dung gzip hoặc tài nguyên khai thác)

Vì vậy, tôi nghĩ về mặt kỹ thuật các url tuyệt đối / tương đối không tạo ra nhiều sự khác biệt về tốc độ trang / bất kỳ ma trận trọng số nào .

Có, nó tạo ra sự khác biệt lớn trong việc quản lý nhiều môi trường như dev, pp, prodpp, v.v.

Ví dụ: về sự phát triển địa phương của bạn, bạn có thể có dev.example.com về sản xuất trước mà bạn có thể có: pp.example.com. .

Vì vậy, trong các kịch bản đó, việc quản lý mã tương đối dễ dàng với các url tương đối (mặc dù cũng có thể được quản lý bằng cài đặt môi trường)


2

Đường dẫn dựa trên HTML / CSS sẽ luôn nhanh hơn cho tốc độ máy chủ, điều này là do máy chủ có ít mã để gửi. Các đường dẫn tương đối ở dạng HTML hoặc CSS được dịch bởi trình duyệt của người dùng cuối chứ không phải máy chủ.

Về mặt kỹ thuật, máy chủ nhanh hơn và chậm hơn cho người dùng cuối, nhưng người dùng cuối sẽ không bao giờ nhận thấy sự khác biệt, vì yêu cầu xử lý ít hơn nano giây, do đó người dùng cuối có nhiều khả năng thấy sự khác biệt từ tương đối vì máy chủ sẽ có thể phục vụ họ tốt hơn.


"Các đường dẫn dựa trên HTML / CSS sẽ luôn nhanh hơn cho tốc độ máy chủ, điều này là do máy chủ có ít mã hơn để gửi." Tôi không thực sự tin điều đó. Mặc dù http://example.com/category/cats.htmldài hơn /category/cats.html, tôi không thể thấy điều này có tác động đáng kể đến hiệu suất để thậm chí được xem xét. Gzipping dữ liệu đã gửi, trong đó có phân số của một giây, cả hai sẽ bao gồm "không hiệu quả kích thước" và bất cứ "hình phạt tốc độ" nào mà nó áp đặt.
VLAZ

Tôi đã nói về mặt kỹ thuật nhanh hơn ... và bạn đang chọn chuỗi. ngay cả khi nén bộ nhớ cache bằng gzip, một trang html có độ tương đối so với tương đối sẽ lớn hơn một chút (gz tương đối so với gz tuyệt đối), do đó về mặt kỹ thuật ... người dùng cuối phải dịch ngược gzip đó và giải quyết tương đối, điều này chậm hơn người dùng cuối ... nhưng điều này rất ít người dùng cuối sẽ không chú ý, một lần nữa đây là sự thật. Ngay cả với các công nghệ phía máy chủ như GZIP, tệp HTML đã nén hoặc tệp CSS sử dụng đường dẫn tương đối so với tuyệt đối, tương đối sẽ luôn nhỏ hơn trong tệp nén, một lần nữa, đây là sự thật, hãy thử nó.
Simon Hayter

Mặc dù sự khác biệt có thể chỉ là một vài byte hoặc vài kb trên các trang lớn hơn, nhưng mức tiết kiệm cho một khách truy cập không phải là chính, nhưng trong hàng triệu người dùng trở nên đáng chú ý hơn ... do đó, về mặt kỹ thuật nhanh hơn. Bây giờ, nếu bạn hỏi nếu giá trị của nó sử dụng tương đối so với tuyệt đối cho trang web trung bình chỉ với vài trăm lượt truy cập mỗi ngày? câu trả lời có lẽ là không ... nhưng đó không phải là câu hỏi được hỏi.
Simon Hayter

Hiệu suất hit, tốt nhất, sẽ không đáng kể. Nó cũng có thể hoàn toàn không tồn tại. Máy chủ nói chung là tốt ở một điều. Đó là trong tên của họ - phục vụ nội dung. Tôi không nghĩ vài byte hoặc KB sẽ là một vấn đề. Nó chỉ là nội dung, ở cuối. Nếu kích thước là một vấn đề, HTML chúng ta viết sẽ trông rất khác. Đó không phải là trường hợp. Việc thu nhỏ nội dung hoàn toàn là để thuận tiện cho người dùng trong trường hợp băng thông của họ nhỏ. Tôi tự tin rằng việc xử lý yêu cầu và phản hồi là nơi thực hiện, chứ không phải trong hành động gửi dữ liệu thực tế.
VLAZ

1
"đường dẫn dựa trên tương đối sẽ luôn nhanh hơn tốc độ máy chủ" - nhưng OP nói, "Tôi không hỏi về tốc độ tải trang web" - đó là nơi duy nhất mà trang web có thể nhanh hơn. (Thành thật mà nói, tôi không thực sự chắc chắn "tốc độ" mà OP đang nói đến là gì?)
MrWhite
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.