Как браузеры обрабатывают куки? - PullRequest
4 голосов
/ 05 февраля 2011

Как браузер управляет файлами cookie? Я имею в виду, нужно ли создавать cookie объект?

Мотивация: я хочу войти на сайт cookie. В настоящее время файлы cookie - это не только имя и значение, они также содержат домен, срок действия и т. Д.

Мне нужен ответ на перспективу Java.

Ответы [ 4 ]

3 голосов
/ 05 февраля 2011

Всякий раз, когда браузер получает ответ, содержащий определенный заголовок cookie, он создает cookie.

С помощью API Java-сервлетов вы можете создавать куки:

Cookie cookie = new Cookie();
cookie.setName(); // setValue, setMaxAge, setPath, etc.
response.addCookie(cookie);

При последующих запросах браузер отправляет куки на сервер. Опять же, с помощью API сервлета вы можете получить текущие куки, позвонив по номеру request.getCookies()

1 голос
/ 05 февраля 2011

Если вам нужно создать мини-браузер с состоянием cookie с использованием встроенного API java.net, вы можете проверить этот учебник: http://www.hccp.org/java-net-cookie-how-to.html. В нем показано, как Java может подключаться к URL, перейдитечерез заголовки ответов для получения файлов cookie и способы установки файлов cookie в запросе.

Пример кода:

    System.out.println("GET: " + url);

    // create and open url connection for reading
    URL urlObj = new URL(url);
    URLConnection conn = urlObj.openConnection();

    // set existing cookies
    conn.setRequestProperty("Cookie", myGetSavedCookies(url));

    // connect
    conn.connect();

    // loop through response headers to set new cookies
    myAddSavedCookies(conn.getHeaderFields().get("Set-Cookie"));

    // read page
    Scanner sc = new Scanner(conn.getInputStream());
    while (sc.hasNextLine())
        out.write(sc.nextLine());
    sc.close();
0 голосов
/ 05 февраля 2011

Если вы хотите автоматизировать просмотр веб-сайта с точки зрения клиента, вместо того, чтобы делать это вручную, я бы использовал фреймворк, подобный JWebUnit , основанный на HtmlUnit но еще более высокого уровня и проще в использовании. Вам не нужно беспокоиться о файлах cookie, но у вас есть доступ к ним, если вам нужно их проверить.

Я знаю, что это не дает прямого ответа на ваш вопрос о том, как браузер обрабатывает куки, но я надеюсь, что это поможет!

0 голосов
/ 05 февраля 2011

Предполагая, что вы работаете на сервере и работаете в среде сервлетов (Tomcat, Jetty), вы хотите посмотреть getCookies и аналогичные файлы cookie в ответе.

...