💬 Спросят с вероятностью 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 — это небольшие фрагменты данных, отправляемые сервером и хранимые на клиентской стороне, используемые для сохранения информации между запросами. Они полезны для поддержания состояния сеансов, хранения пользовательских предпочтений и аналитики, но имеют ограничения по размеру и могут представлять угрозу безопасности и конфиденциальности.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых