- 이 게시글은 인프런 "모든 개발자를 위한 HTTP 웹 기본지식"의 김영한님 강의를 보고 요약한 내용입니다.
1. 일반 정보
① From : 유저 에이전트의 이메일 정보
- 검색 엔진에서 주로 사용
- 요청에서 사용
② Referer : 현재 요청된 페이지의 이전 웹 페이지 주소
- 요청에서 사용, 유입 경로 분석 가능
ex) A → B 이동시, B 요청할 때 Refer: A 포함하여 요청
③ User-Agent : 유저 에이전트 애플리케이션 정보
- 요청에서 사용, 어떤 종류의 브라우저에서 장애 발생하는지 파악 가능(로그 파싱을 통해)
- 통계 정보로 이용
④ Server : 요청을 처리하는 origin 서버의 소프트웨어 정보
- 응답에서 사용
* origin 서버 : http 요청을하면 중간에 여러 프록시 서버, 캐시 서버를 거치게 되는데, 실제 응답을 해주는 서버를 의미
⑤ Date : 메시지 생성 날짜
- 응답에서 사용
2. 특별한 정보
① Host : 요청한 호스트 정보(도메인)
- 필수이며 요청에서 사용
- 하나의 서버(IP주소)가 여러 도메인을 처리해야할 때
② Location : 페이지 리다이렉션
- 웹 브라우저는 3xx 응답 결과에 Location 헤더 존재시, Location 위치로 리다이렉트
- 201(Created) : Location 값은 요청에 의해 생성된 리소스 URI
- 3xx(Redirection) : Location 값은 리다이렉션하기 위한 대상 리소스
③ Allow : 허용가능한 HTTP 메서드
- 405(Method Not Allowed) 응답에 포함
- GET, HEAD, PUT
④ Retry-After : 유저 에이전트가 다음 요청을 하기까지 기다려야하는 시간
- 503(Service Unavailable) : 서비스가 언제까지 불능인지 알려줄 수 있음
- 날짜나 초단위 표기
3. 인증
① Authorization : 클라이언트 인증 정보를 서버에 전달
② WWW-Authenticate : 리소스 접근시 필요한 인증 방법 정의
- 401(Unauthorized) 응답과 함께 사용
4. 쿠키
① Set-Cookie : 서버에서 클라이언트로 쿠키 전달(응답)
② Cookie : 클라이언트가 서버에서 받은 쿠키 저장, HTTP 요청시 서버로 전달
쿠키 미사용
▶ HTTP는 무상태(Stateless) 프로토콜로 클라이언트와 서버가 요청과 응답을 주고 받으면 연결이 끊어짐
→ 클라이언트와 서버는 서로 상태를 유지하지 않음
→ welcome 페이지에서 '홍길동'을 구분하지 못함
대안
- 모든 요청에 사용자 정보를 포함
▶ 모든 요청과 링크에 사용자 정보를 포함하면 여러 심각한 문제들(보안 문제, 개발 어려움) 발생
쿠키 사용
▶ 서버에서 Set-Cookie 를 통해 user 정보를 응답
→ 쿠키 저장소에 저장
→ welcome 페이지 접속 시 웹 브라우저가 쿠키 탐색하여 찾음
▶ 모든 요청에 쿠키 정보를 자동으로 포함
쿠키
사용처 : 사용자 로그인 세션 관리, 광고 정보 트래킹
- 쿠키 정보는 항상 서버에 전송 : 최소한의 정보(세션 id, 인증 토큰)만 사용
* 웹 스토리지 : 서버에 전송 X, 웹 브라우저 내부에 데이터 저장
- 보안에 민감한 데이터는 저장 X
set-cookie: sessionId=abcde1234; expires=Sat, 26-Dec-2020 00:00:00 GMT;
path=/; domain=.google.com; Secure
생명주기
- expires : 만료일이 되면 쿠키 삭제
- max-age=3600(3600초) : 0이나 음수를 지정하면 쿠키 삭제
- 세션 쿠키 : 만료 날짜 생략하면 브라우저 종료할 때까지 유지
- 영속 쿠키 : 만료 날짜를 입력하면 해당 날짜까지 유지
경로
- 입력 경로를 포함한 하위 경로 페이지만 쿠키 접근
- 일반적으로 path=/ 루트로 지정
도메인
- 명시 : 명시한 문서 기준 도메인 + 서브 도메인
- 생략 : 현재 문서 기준 도메인만 적용
보안
- Secure : 쿠키는 http, https 구분 x → But, Secure 적용시 https인 경우만 전송
- HttpOnly : XSS 공격 방지, HTTP 전송에만 사용
- Samesite : XSRF 공격 방지, 요청 도메인과 쿠키에 설정된 도메인 동일시 쿠키 전송
'HTTP' 카테고리의 다른 글
[HTTP] 웹 기본 지식 정리 - HTTP 헤더(캐시와 조건부 요청)② (0) | 2023.01.25 |
---|---|
[HTTP] 웹 기본 지식 정리 - HTTP 헤더(캐시와 조건부 요청)① (0) | 2023.01.24 |
[HTTP] 웹 기본 지식 정리 - HTTP 헤더(일반헤더)① (0) | 2023.01.21 |
[HTTP] 웹 기본 지식 정리 - HTTP 상태 코드 (0) | 2023.01.17 |
[HTTP] 웹 기본 지식 정리 - HTTP 메서드 활용② (0) | 2023.01.15 |