TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #395 4.67K
📌 Что такое cookies ?

💬 Спросят с вероятностью 6%

Cookies — это небольшие фрагменты данных, которые веб-сервер отправляет и хранит на клиентской стороне (обычно в браузере). Они используются для сохранения информации о пользователе между HTTP-запросами. Это позволяет веб-приложениям поддерживать состояние, отслеживать сеансы пользователей, хранить пользовательские предпочтения и другую информацию.

Основные характеристики

1️⃣ Имя и значение: Каждое имеет имя и значение. Например, cookie с именем sessionId и значением 12345.

2️⃣ Домен и путь: Указывают, к какому домену и пути относится cookie. Например, cookie, установленное для домена example.com, будет доступно для всех поддоменов, если не указано иное.

3️⃣ Время жизни: Указывает, как долго cookie должно храниться. Может быть сессионным (удаляется после закрытия браузера) или постоянным (с заданным временем истечения).

4️⃣ Безопасность: Cookies могут быть помечены как Secure (отправляются только через HTTPS) и HttpOnly (недоступны для JavaScript, что повышает безопасность).

Примеры:

Установка

В сервлетах для установки cookies используется класс Cookie и методы HttpServletResponse.
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/setCookie")
public class SetCookieServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Создание cookies
Cookie cookie = new Cookie("username", "JohnDoe");
cookie.setMaxAge(60 * 60); // Установить время жизни в секундах (1 час)
response.addCookie(cookie); // Добавить cookie в ответ

response.getWriter().println("Cookie set successfully");
}
}


Чтение

Для этого сервлетах используется метод getCookies класса HttpServletRequest.
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/getCookie")
public class GetCookieServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName())) {
String username = cookie.getValue();
response.getWriter().println("Hello, " + username);
}
}
} else {
response.getWriter().println("No cookies found");
}
}
}


Атрибуты

➕ Name (Имя): Имя cookie, используемое для его идентификации.

➕ Value (Значение): Значение cookie.

➕ Domain (Домен): Домен, для которого cookie действительно.

➕ Path (Путь): Путь на сервере, для которого cookie действительно.

➕ Max-Age (Максимальный возраст): Время жизни cookie в секундах.

➕ Secure (Безопасный): Если установлен, cookie передается только по HTTPS.

➕ HttpOnly: Если установлен, cookie недоступно для JavaScript через document.cookie.

Cookies — это небольшие фрагменты данных, отправляемые сервером и хранимые на клиентской стороне, используемые для сохранения информации между запросами. Они полезны для поддержания состояния сеансов, хранения пользовательских предпочтений и аналитики, но имеют ограничения по размеру и могут представлять угрозу безопасности и конфиденциальности.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
  • ❤ 9
  • 👍 6
  • 😁 2
More from @easy_java_ru
  1. Oct 11, 2026🤔 Чем отличается where от having ? WHERE и HAVING используются для фильтрации записей, но…
  2. Oct 10, 2026🤔 На основании какой структуры данных реализован ArrayList? ArrayList реализован на базе…
  3. Oct 9, 2026🤔 Что такое «HTML»? HTML (HyperText Markup Language) — это язык разметки, используемый дл…
  4. Oct 9, 2026🤔 В чём различие между LeftJoin , RightJoin и InnerJoin? LEFT JOIN, RIGHT JOIN и INNER JO…
  5. Oct 8, 2026🤔 Что такое поток "демон"? Демон-поток — это поток, который: - Работает на фоне (например…
  6. Oct 7, 2026🤔 Может ли Entity-класс быть абстрактным? Да, Entity может быть абстрактным, если он служ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →