코딩과로그
TIL > 쿠키 & HTTP 헤더 본문
쿠키
: 서버에서 클라이언트에 데이터를 저장하는 방법의 하나이다.
또한 서버가 원한다면 서버는 클라이언트에서 쿠키를 이용하여 데이터를 가져올 수 있다.
따라서 쿠키를 이용하는 것은 단순히 서버에서 클라이언트에 쿠키를 전송하는 것만 의미하지 않고 클라이언트에서 서버로 쿠키를 전송하는 것도 포함된다.
쿠키 옵션:
1. 도메인 :
도메인이란 www.google.com 과 같은 서버에 접속할 수 있는 이름이다. 도메인 이름만 포함되고 포트 및 서브 도메인 정보, 세부 경로는 포함하지 않는다.
여기서 서브 도메인은 www 을 의미한다.
http://www.localhost.com:3000/users/login 이라는 URL 이 있다면 여기서 도메인은 localhost.com 이다.
2. Path
: 서버가 라우팅 시 사용하는 경로이다.
예를 들어 http://www.naver.com:3000/posts/10 라는 URL 이 있다면, Path 는 /posts/10 이고, 별도로 명시되어 있지 않다면 기본값은 / 이다.
URL의 Path 에 설정된 Path 가 포함되어있다면 Path가 추가로 더 있더라도 쿠키를 서버에 전송할 수 있다.
즉 Path가 /posts 로 설정되어 있고, 요청하는 세부 경로가 /posts/10 인 경우라면 쿠키 전송이 가능하다.
3. MaxAge or Expires
: 쿠키의 유효기간을 의미합니다.
MaxAge 는 유효 시간을 의미하고, Expires 는 유효 기간을 의미합니다.
예를 들어 MaxAge가 3600 으로 설정되어있으면 3600초를 의미하며 쿠키를 받은 후로부터 1시간동안 쿠키가 유효합니다.만약 Expires 를 3월 1일로 정했다면 3월 1일까지 쿠키가 유효합니다.두가지 옵션이 모두 지정되어 있지 않다면 브라우저의 탭을 닫을 때 쿠키가 제거됩니다.
4. Secure
: 해당 옵션이 true 로 설정되어 있는 경우, https 프로토콜로 통신하는 경우에만 쿠키를 전송할 수 있습니다.
5. HttpOnly
: 해당 옵션이 true 로 설정되어있는 경우 자바스크립트로 쿠키값을 얻어올 수 없습니다.
자바스크립트로 접근이 가능하면 XSS 공격에 취약합니다.
6. SameSite
Cross-Origin 요청을 받은 경우, 옵션을 설정하여 쿠키 전송 여부를 결정합니다.Lax : same-site 가 아닌 경우에만 'GET' 메소드만 쿠키 허용Strict : same-site 인 경우에만 쿠키 허용
None: 항상 쿠키를 보내준다.
HTTP 주요 헤더
요청 헤더 :
Referer:
- 현재 요청된 페이지의 이전 웹 페이지 주소
User-Agent:
- 유저 에이전트 애플리케이션 정보
- 클라이언트의 애플리케이션 정보(웹 브라우저 정보, 등등)
Host:
- 요청한 호스트 정보이다.
- 필수 헤더
- 도메인을 통해서 빠르게 원하는 IP를 찾을 수 있다.
Origin:
- 서버로 POST 요청을 보낼 때, 요청 주소를 뜻한다.
- 요청을 보낸 주소와 응답을 받은 서버의 주소가 다르면 CORS 에러가 발생
- 응답헤더의 Access-Control-Allow-Origin 와 관련이 있다.
Authorization: 인증 토큰 관련 헤더
- 토큰의 종류와 토큰 값을 전달한다.
응답 헤더
Server:
- 요청을 처리하기 위해 서버에서 사용하는 소프트웨어를 보여준다.
Date :
- 메시지가 발생한 날짜와 시간
Location:
요청된 리소스가 새 위치로 이동했음을 클라이언트에 알리는 것입니다. 그런 다음 클라이언트는 새 위치에서 리소스를 검색하기 위해 Location 헤더에 지정된 URL에 새 요청을 보내야 한다.
예를 들어 사용자가 새 URL로 이동된 웹 사이트의 페이지에 액세스하려고 하면 서버는 301 상태 코드와 페이지의 새 URL이 포함된 Location 헤더로 응답할 수 있다. 그런 다음 사용자의 브라우저는 자동으로 새 URL로 리디렉션하여 페이지를 검색한다.
Location 헤더는 임시 리디렉션(302 상태 코드) 또는 다른 프로토콜로의 리디렉션(예: HTTP에서 HTTPS로)과 같은 다른 유형의 리디렉션을 구현하는 데에도 사용할 수 있다.
'Devops > TIL' 카테고리의 다른 글
TIL > API 문서 작성하기 (swagger) (0) | 2023.03.23 |
---|---|
TIL > REST API (0) | 2023.03.23 |
TIL > HTTP (0) | 2023.03.16 |
TIL > URL과 URI (0) | 2023.03.15 |
TIL > 시스템 모니터링 (0) | 2023.03.15 |