Riêng tư và công khai trong Kiểm soát bộ nhớ cache


127

Bạn có thể vui lòng mô tả một ví dụ cho thấy sự khác biệt giữa Kiểm soát bộ đệm công cộng và riêng tư trong các ứng dụng asp.net được lưu trữ trong IIS.

Tôi đọc trong MSDN rằng sự khác biệt là như sau:

Công khai: Đặt Kiểm soát bộ đệm: công khai để xác định rằng phản hồi được lưu trữ bởi các máy khách và bộ đệm (proxy) được chia sẻ.

Riêng tư: Giá trị mặc định. Đặt Kiểm soát bộ đệm: riêng tư để chỉ định rằng phản hồi chỉ được lưu trong bộ nhớ cache trên máy khách chứ không phải bởi bộ đệm (máy chủ proxy) được chia sẻ.

Tôi không chắc chắn tôi đã hoàn toàn hiểu những ưu và nhược điểm từ mỗi lựa chọn. Một ví dụ cho khi nào nên hay không sử dụng nó sẽ rất tuyệt.

Ví dụ tôi nên làm gì nếu tôi có hai máy chủ web lưu trữ cùng một ứng dụng? Có bất cứ điều gì để xem nếu tôi chọn tư nhân hoặc công cộng?

Câu trả lời:


237

Sự khác biệt duy nhất là với Private bạn không cho phép proxy lưu trữ dữ liệu đi qua chúng. Cuối cùng, tất cả tập trung vào dữ liệu chứa trong các trang / tệp bạn đang gửi.

Ví dụ: ISP của bạn có thể có một proxy vô hình giữa bạn và Internet, đó là lưu trữ các trang web để giảm lượng băng thông cần thiết và chi phí thấp hơn. Bằng cách sử dụng kiểm soát bộ đệm: riêng tư, bạn đang chỉ định rằng nó không nên lưu trữ trang (nhưng cho phép người dùng cuối cùng làm như vậy). Nếu bạn sử dụng kiểm soát bộ đệm: công khai, bạn đang nói rằng mọi người đều lưu bộ nhớ cache vào trang đó và vì vậy proxy sẽ giữ một bản sao.

Theo nguyên tắc thông thường, nếu đó là thứ mà mọi người có thể truy cập (ví dụ: logo trong trang này) kiểm soát bộ đệm: công khai có thể tốt hơn, bởi vì càng nhiều người lưu vào bộ đệm thì bạn càng cần ít băng thông. Nếu đó là thứ gì đó liên quan đến người dùng được kết nối (ví dụ: HTML trong trang này bao gồm tên người dùng của tôi, vì vậy nó sẽ không hữu ích cho bất kỳ ai khác) kiểm soát bộ đệm: riêng tư sẽ tốt hơn, vì các proxy sẽ lưu trữ dữ liệu vào bộ đệm người dùng khác sẽ không yêu cầu và họ cũng có thể lưu giữ dữ liệu mà bạn không muốn lưu giữ trong các máy chủ mà bạn không tin tưởng.

Và, tất nhiên, mọi thứ không công khai nên có bộ đệm riêng. Mặt khác, dữ liệu có thể được lưu trữ trong một máy chủ proxy giữa, bất kỳ ai có quyền truy cập vào nó đều có thể truy cập được.


39
Sự khác biệt duy nhất là với Private bạn không cho phép proxy lưu trữ bộ đệm ... Tôi đoán đây là một lỗi đánh máy. +1 trên câu trả lời ngoài đó. Đáng nói thêm là tư nhân không cung cấp bất kỳ mức độ bảo mật nào, nó vẫn có thể được nhìn thấy bởi các đại lý ở giữa. Nó chỉ có nghĩa là không có tác nhân "trung thực" sẽ cung cấp nó cho người khác thay vì một phản ứng mới được tạo ra.
Jon Hanna

Đã sửa! Thật buồn cười vì tôi đã đọc lại nó một vài lần trước khi đăng, nhưng tôi đoán rằng tôi biết "không" phải ở đó, vì vậy tâm trí của tôi chỉ cần thêm nó: D. Và có, +1 cho nhận xét của bạn, bởi vì cần lưu ý rằng, trong khi được khuyến nghị cho dữ liệu liên quan đến người dùng, riêng tư sẽ không thay thế bảo mật thực sự (SSL).
salgiza

Thật dễ dàng để viết "không" khi bạn không nên hoặc bỏ qua nó khi bạn nên. Tôi biết một số lượng lớn các bản tự chỉnh sửa của mình (trong các lĩnh vực khác nhau) đang sửa lỗi chính tả đó.
Jon Hanna

15
Vì vậy, nếu chúng tôi không chỉ định bất cứ điều gì, thì hành vi mặc định là "công khai" hay "riêng tư"?
Pacerier

1
@Honey nhưng có thể có một số khách hàng sử dụng cùng một proxy. Nếu không sao gửi tất cả các máy khách cùng một phản hồi thì bạn có thể lưu cache ở cấp proxy, nếu không thì có thể lưu cache ở máy khách (vẫn có trường hợp thậm chí đó là một ý tưởng tồi), nhưng không phải trên proxy.
Jon Hanna
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.