상태코드
- 1xx (Information) : 요청이 수신되어 처리중
- 2xx (Successful) : 요청 정상 처리
- 3xx (Redirection) : 요청을 완료하려면 웹브라우저(유저 에이전트)의 추가 행동이 필요
리다이렉션
- 영구 리다이렉션 - 특정 리소스의 URI가 영구적으로 이동
- 일시 리다이렉션 - 일시적인 변경 (주문 완료 후 주문 내역 화면으로 이동)
- 특수 리다이렉션 - 결과 대신 캐시를 사용
- 4xx (Client Error) : 클라이언트 오류
- 404 Not Found : 요청 리소스를 찾을 수 없음
- 5xx (Server Error) : 서버 오류
HTTP 헤더

- HTTP 전송에 필요한 모든 부가정보
- 엔티티 -> 표현
- 메시지 본문을 통해 표현 데이터 전달
- 메시지 본문 = 페이로드
- 표현은 요청이나 응답에서 전달할 실제 데이터
- 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공
표현
- Content-Type : 표현 데이터의 형식
-> 예) image/png, application/json
- Content-Encoding : 표현 데이터의 압축 방식
-> 표현 데이터를 압축하기 위해 사용
-> 예) gzip, indentity
- Content-Language : 표현 데이터의 자연 언어
-> 표현 데이터의 자연 언어를 표현
-> 예) ko,en,en-US
- Content-Length : 표현 데이터의 길이
-> 바이트 단위
협상(콘텐츠 네고시에이션)
: 클라이언트가 선호하는 표현 요청 -> 요청시에만 사용
- Accept : 클라이언트가 선호하는 미디어 타입 전달
- Accept-Charset : 클라이언트가 선호하는 문자 인코딩
- Accept-Encoding : 클라이언트가 선호하는 압축 인코딩
- Accept-Language : 클라이언트가 선호하는 자연 언어
협상과 우선순위Quality Values(q)
- 0~1, 클수록 높은 우선순위
- 구체적인것이 우선
- 구체적인 것을 기준으로 미디어 타입을 맞춤
전송 방식
- 단순 전송
- 압축 전송
- 분할 전송
- 용량이 큰 데이터를 보낼 때는 시간이 걸리지만 분할 전송 사용하면 곧 바로 데이터를 받을 수 있음
- Content-Length X : 예측이 안됌
- 범위 전송 : Range, Content-Range
일반정보
- Referer : 이전 웹 페이지 주소
- User-Agent : 유저 에이전트 애플리케이션 정보
- 요청에서 사용
- 특정 브라우저에서 버그가 생길 때 원인 파악 가능
- Server : 요청을 처리하는 ORIGIN 서버의 소프트웨어 정보
- Date : 메시지가 발생한 날짜와 시간
특별한 정보
- Host : 요청한 호스트 정보(도메인) : 필수
- Location : 페이지 리다이렉션(응답코드 3xx에서 설명)
- Retry-After : 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간
인증
- Authorization : 클라이언트 인증 정보를 서버에 전달
- WWW-Authenticate : 리소스 접근시 필요한 인증 방법 정의(401 응답과 함께 사용)
쿠키
Set-Cookie : 서버에서 클라이언트로 쿠키 전달(응답)
Cookie : 쿨라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달
- 쿠키 정보는 항상 서버에 전송됨
- 네트워크 트래픽 추가 유발
- 최소한의 정보만 사용(세션 id, 인증 토큰)
- 서버에 전송하지 않고, 웹 브라우저 내부에 데이터를 저장하고 싶으면 웹 스토리지 참고
- 보안에 민감한 데이터 저장 X
- 쿠키 - 생명주기
- Expires(날짜), max-age(초단위)
- 쿠키 - 도메인
- 쿠키 - 경로
- 쿠키 - 보안
- secure(https인 경우에만 전송)
- HttpOnly(XSS공격 방지, JS에서 접근 불가, HTTP 전송에만 사용)
- SameSite(여청 도메인과 쿠키에 설정된 도메인이 같은 경우에만 쿠키사용)