>  기사  >  웹 프론트엔드  >  nodejs는 쿠키 속성을 설정합니다

nodejs는 쿠키 속성을 설정합니다

WBOY
WBOY원래의
2023-05-08 15:32:081309검색

웹 개발에서 쿠키는 클라이언트 인증, 기본 설정 또는 기타 관련 정보를 저장하는 데 사용할 수 있는 일반적인 세션 관리 방법입니다. Node.js에서는 내장된 http 모듈을 사용하여 쿠키 속성을 설정하거나 읽을 수 있습니다.

쿠키 속성 설정:

쿠키 속성을 설정하려면 먼저 http 서버를 생성하고 res.setHeader() 메서드를 사용하여 응답 헤더에 Set-Cookie 필드를 설정해야 합니다. 이 필드의 값은 문자열이어야 하며, 이는 클라이언트 관련 정보나 상태를 저장하기 위해 서버에서 클라이언트로 보내는 추가 정보입니다. 이 문자열은 일반적으로 키-값 쌍으로 구성됩니다. 여기서 키는 쿠키의 이름을 나타내고 값은 키에 해당하는 값을 나타냅니다.

다음은 쿠키 속성을 설정하는 방법을 보여주는 간단한 Node.js 서버 예입니다.

const http = require('http');

const server = http.createServer((req, res) => {
  res.setHeader('Set-Cookie', ['name=John', 'age=30']);
  res.end('Set cookie successfully');
});

server.listen(3000, () => {
  console.log('Server listening on port 3000');
});

위 코드에서는 res.setHeader() 메서드를 사용하여 두 개의 쿠키 속성을 설정합니다. 하나는 name=John이고 기타 연령=30입니다. 배열을 통해 여러 쿠키 속성을 설정할 수 있습니다.

쿠키 속성 읽기:

쿠키 속성을 읽으려면 클라이언트 요청에서 해당 쿠키 정보를 얻어야 합니다. Node.js에서는 req.headers.cookie 속성을 사용하여 요청 헤더의 쿠키 정보를 얻을 수 있습니다. 이 속성의 값은 문자열이어야 하며, 이는 클라이언트 관련 정보나 상태를 저장하기 위해 클라이언트가 서버에 보내는 추가 정보입니다. 이 문자열은 일반적으로 키-값 쌍으로 구성됩니다. 여기서 키는 쿠키의 이름을 나타내고 값은 키에 해당하는 값을 나타냅니다.

다음은 쿠키 속성을 읽는 방법을 보여주는 간단한 Node.js 서버 예제입니다.

const http = require('http');

const server = http.createServer((req, res) => {
  const cookieHeader = req.headers.cookie;
  console.log('Cookie Header:', cookieHeader);
  res.end('Get cookie successfully');
});

server.listen(3000, () => {
  console.log('Server listening on port 3000');
});

위 코드에서는 req.headers.cookie 속성을 사용하여 클라이언트가 서버로 보낸 쿠키 정보를 인쇄했습니다.

쿠키 설정 옵션:

쿠키의 이름과 값을 설정하는 것 외에도 일부 옵션을 사용하여 만료 시간, 경로, 도메인, 보안 수준 등과 같은 쿠키의 동작을 제어할 수도 있습니다. 이러한 옵션은 각각 세미콜론으로 구분된 Set-Cookie 헤더의 속성으로 구성됩니다.

다음은 일반적으로 사용되는 쿠키 옵션과 해당 기능입니다.

  • Expires: GMT 형식의 날짜 문자열인 쿠키의 만료 시간을 나타냅니다. 예: Expires=수, 2020년 10월 21일 07:28:00 GMT. 이 옵션을 설정하지 않으면 브라우저를 닫은 후 쿠키가 삭제됩니다.
  • Max-Age: 쿠키의 최대 수명 주기(초)를 나타냅니다. 예를 들어 Max-Age=3600은 쿠키가 1시간 후에 만료됨을 의미합니다.
  • Domain: 쿠키의 도메인 이름을 나타냅니다. 예: Domain=.example.com은 쿠키가 .example.com으로 끝나는 모든 도메인 이름에 대해 유효하다는 것을 의미합니다.
  • Path: 쿠키의 경로를 나타냅니다. 예: Path=/는 쿠키가 전체 웹사이트에 대해 유효함을 의미합니다.
  • 보안: 쿠키가 HTTPS 보안 채널을 통해서만 전송된다는 것을 나타냅니다. 예: 보안은 쿠키가 HTTPS 프로토콜을 통해서만 전송된다는 것을 의미합니다.
  • HttpOnly: 쿠키가 HTTP 요청에만 사용되며 JavaScript를 통한 액세스를 허용하지 않음을 나타냅니다. 예: HttpOnly는 클라이언트 측에서 JavaScript를 통해 쿠키를 얻을 수 없음을 의미합니다.

다음은 옵션을 사용하여 쿠키 속성을 설정하는 방법을 보여주는 Node.js 서버 예제입니다.

const http = require('http');

const cookieOptions = {
  maxAge: 24 * 60 * 60 * 1000,
  httpOnly: true,
  secure: true,
  sameSite: 'strict'
};

const server = http.createServer((req, res) => {
  res.setHeader('Set-Cookie', ['name=John', 'age=30', `session=${Date.now()}`, `options=${JSON.stringify(cookieOptions)}`]);
  res.end('Set cookie with options successfully');
});

server.listen(3000, () => {
  console.log('Server listening on port 3000');
});

위 코드에서는 여러 옵션이 포함된 JSON 문자열 값으로 options라는 쿠키 속성을 설정합니다. 이 쿠키의 최대 수명은 24시간이며, HTTP 요청에만 사용할 수 있고, HTTPS 프로토콜에서만 전송할 수 있으며, 동일한 원본 정책(엄격)을 따라야 합니다.

요약:

Node.js에서는 쿠키 속성을 설정하고 읽는 것이 매우 간단합니다. http 모듈의 setHeader() 메소드를 사용하여 Set-Cookie 헤더 정보를 설정하고 req.headers.cookie 속성을 사용하여 클라이언트 요청에서 쿠키 정보를 얻습니다. 수명주기, 도메인 이름, 경로, 보안 수준 등과 같은 쿠키 동작을 추가로 제어하려면 쿠키 옵션을 사용하십시오.

위 내용은 nodejs는 쿠키 속성을 설정합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.