2010-06-18 23 views
8

Tôi không hiểu: máy chủ web và trình theo dõi như Google Analytics có thể theo dõi giới thiệu như thế nào?Làm thế nào để tham khảo (r) er công việc kỹ thuật?

Đây có phải là một phần của HTTP không?

Có một số (un) hành vi được chỉ định của trình duyệt không?

Dường như mỗi khi bạn nhấp vào liên kết trên trang web, trang web gốc sẽ được chuyển theo yêu cầu.

Cơ chế chính xác đằng sau điều đó là gì? Nó được chỉ định bởi một số spec?

Tôi đã đọc một vài tài liệu và tôi đã chơi với máy chủ Tomcat của riêng mình và tài khoản Google Analytics của riêng tôi, nhưng tôi không hiểu cách "ma thuật" xảy ra.

Câu hỏi thưởng: (nếu có, trên trang web của riêng tôi (được Tomcat phục vụ), tôi đặt liên kết đến trang web khác, trang web khác có xem trang web của tôi là "liên kết giới thiệu" không có tôi hay không ?

+0

@Marcel Korpel: bây giờ đó là một chỉnh sửa tuyệt vời, tôi muốn mọi người có thể cho + phiếu bầu để chỉnh sửa :) – NoozNooz42

+0

woaw, 23 phút và ba upvotes cho câu hỏi của tôi, tôi không mong đợi điều đó (rõ ràng đó là một phần tương đối không rõ) thông số kỹ thuật HTTP cho một số người, như tôi :)! +1 cho tất cả mọi người (người trả lời gần như tất cả cùng một lúc) – NoozNooz42

+0

Haha, cảm ơn, NP; về cơ bản, chỉ cần nhấp chuột phải vào tất cả các từ được gạch dưới màu đỏ lung lay trong Firefox. ;) –

Trả lời

10

Tham chiếu (sai chính tả trong thông số kỹ thuật) là tiêu đề HTTP. Đó là tiêu đề chuẩn mà tất cả các máy khách HTTP chính hỗ trợ (mặc dù một số máy chủ proxy và tường lửa có thể được định cấu hình để loại bỏ nó hoặc xé nó). Khi bạn nhấp vào một liên kết, trình duyệt của bạn sẽ gửi một yêu cầu HTTP chứa trang đang được yêu cầu và trang mà liên kết được tìm thấy trong số những thứ khác.

Vì đây là tiêu đề khách hàng/yêu cầu, máy chủ không liên quan và có, nhấp vào liên kết trên trang được lưu trữ trên máy chủ của riêng bạn sẽ dẫn đến URL của trang đó được gửi đến máy chủ của trang web khác, mặc dù máy chủ của bạn có thể không nhất thiết phải truy cập được từ trang web khác, tùy thuộc vào cấu hình mạng của bạn.

+0

Cũng đáng lưu ý rằng các yếu tố được nhúng trong một trang sẽ có tiêu đề được gửi cùng với trang mẹ được nhúng trong đó. – Sam152

1

Nếu bạn yêu cầu trang web bằng trình duyệt, trình duyệt của bạn sẽ gửi tiêu đề Người giới thiệu HTTP cùng với yêu cầu.

1

Trình duyệt của bạn chuyển liên kết giới thiệu với từng yêu cầu trang.

Có vẻ như không bình thường khi JavaScript cũng có quyền truy cập vào điều này, nhưng có.

1

Khi bạn bấm vào một liên kết trình duyệt bổ sung thêm một tiêu đề Referer ứng yêu cầu. Nó là part of HTTP. Bạn có thể đọc thêm về nó here.

4

Từ: http://en.wikipedia.org/wiki/HTTP_referrer

Trường giới thiệu là một phần bắt buộc của yêu cầu HTTP gửi bởi chương trình duyệt đến máy chủ web.

Từ RFC 2616:

Các Referer [sic] Yêu cầu-header lĩnh vực cho phép khách hàng để xác định, cho lợi ích của máy chủ, địa chỉ (URI) của tài nguyên mà từ đó Yêu cầu-URI thu được (các "giới thiệu", mặc dù tiêu đề lĩnh vực là sai chính tả.)

7

Một chi tiết để thêm vào những gì' đã được nói về cách trình duyệt gửi: HTTPS thay đổi hành vi một chút. Tôi không biết nếu nó có bất kỳ thông số kỹ thuật nào, nhưng nếu bạn chuyển từ HTTPS sang HTTP và nếu bạn ở trên cùng một tên miền hoặc đi đến các miền khác nhau, thì đôi khi liên kết giới thiệu không được gửi. Tôi không biết các quy tắc chính xác, nhưng tôi đã quan sát điều này trong tự nhiên. Nếu có một số thông số kỹ thuật hoặc mô tả về điều này, nó sẽ là tuyệt vời.

EDIT: ok, RFC nói thẳng:

Khách hàng không nên bao gồm một header field Referer trong một yêu cầu HTTP (không an toàn) nếu trang đề cập đã được chuyển giao với một giao thức an toàn.

Vì vậy, nếu bạn chuyển từ trang HTTPS sang liên kết HTTP, thông tin liên kết giới thiệu sẽ không được gửi.

+0

tuyệt vời, đây là nhiều hơn những gì tôi hỏi và rất thú vị, +1 :) – NoozNooz42

Các vấn đề liên quan