Skip to main content

網站如何記住您的偏好(以及關於Cookie的選擇)?

網站如何記住您的偏好(以及關於Cookie的選擇)?

Geoffrey Carr

網站如何記住您對他們的偏好(或者不想要任何人),以及餅乾本身的敏感話題呢?今天的超級用戶問答帖旨在揭示cookie如何運作以及它們為困惑的讀者存儲的信息。

今天的問答環節由SuperUser提供,這是Stack Exchange的一個細分,Stack Exchange是一個社區驅動的問答網站分組。

照片由Pedro Vezini(Flickr)提供。

問題

超級用戶閱讀器Ruud Lenders想要了解更多關於網站的偏好和Cookie的工作方式:

A pop-up displayed on a website that I visited and asked me if I would allow the website to store preferences in cookies. By accident, I chose no. Refreshing the page does not bring the pop-up back. Is there a way to get this kind of pop-up back without clearing the history and cookies?

This also got me to thinking. How can a website remember if it is allowed to store cookies? By storing it in a cookie?

網站如何記住您的整體偏好以及您對Cookie的一般選擇?

答案

超級用戶貢獻者bvukelic為我們提供了答案:

They asked you if you would like to store preferences in cookies, not if you would like them to set cookies in general. So if I were writing support for this feature, I would set a separate cookie (nopref) and check whether or not the user has this cookie. There is a good chance you will find such a cookie for that website, which you can clear without removing other cookies or history.

Inspecting Cookies Set for a Particular Page

In Firefox, you can list cookies for a particular web page by right-clicking a blank part of the page, then selecting the View Page Info option. You will find a View Cookies button in the Security Tab. In Chrome, you have the same View Page Info option which opens a dialog that hangs from the address bar. A link near the top will take you to a listing of cookies. I assume similar features can be found in other browsers.

Discovering if a Website Sets a Cookie

Here is one way that you can discover what the website is doing. Visit the website in Incognito Mode. Open the Developer Tools and switch to the Network Tab. Then check to see what activity is occurring in the background as you decline having the site track you with cookies. Specifically, look for response headers and see if there are any Set-Cookie headers in there. Then try deleting cookies mentioned in the header to see if that makes any difference.

About localStorage

Since another poster has mentioned localStorage (in-browser database), I will comment on this as well. I think it will be very rare that a website uses localStorage for this purpose as localStorage data is not accessible to the server unless there is JavaScript code that sends the data back to the server. If you wish to check the contents of localStorage, the fastest way is to open the Developer Tools in your browser, go to the (JavaScript) Console Tab, and type localStorage. This should give you an output that looks something like:

  • Storage { someKey: “value”, length: 1 }

The someKey identifies the value set by JavaScript on the web page you are on. If you believe someKey does something relevant, you can try removing it by running the following:

  • localstorage.removeItem(‘someKey’);

This removes the data under someKey from localStorage, and reloading the web page may restore it to factory settings. If you are not sure the particular key is set by the cookie notification functionality, you may open the web page in Incognito Mode and list the contents of localStorage before interacting with the web page.

Again, I doubt many websites use localStorage for this purpose.


有什麼要補充說明嗎?在評論中發聲。想要從其他精通技術的Stack Exchange用戶那裡閱讀更多答案嗎?在這裡查看完整的討論主題。

Link
Plus
Send
Send
Pin