YJ의 새벽
HTTP 헤더 본문
HTTP 헤더 용도
-- HTTP 전송에 필요한 모든 부가정보
-- 메시지 바디의 내용 , 바디의 크기, 압축, 인증, 요청클라이언트, 서버정보, 캐시 ....등
-- 표준 헤더가 너무 많다.
-- 필요시 임의의 헤더 추가 가능.
HTTP 헤더 분류
-- General 헤더 : 메시지 전체에 적용되는 정보. ex ) Connection : close .
-- Request 헤더 : 요청 정보, ex ) User-Agent : Mozilla/5.0 .
-- Response 헤더 : 응답 정보 ex ) Server.Apache
-- Entity 헤더 : 엔티티 바디 정보 ex ) Content-Type : text/html , Content-Length : 3423
- 표현헤더
-- Content-Type : 표현 데이터의 형식
-- Content-Encoding : 표현 데이터의 압축 방식
: 데이터를 전달하는곳에서 압축후 인코딩 헤더 추가
: 데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제
: ex) gzip , deflate, identity
-- Content-Language : 표현 데이터의 자연 언어
-- Content-Length : 표현 데이터의 길이 (바이트단위)
: Transfer-Encoding(전송코딩) 을 사용하면 Content-Length 사용불가.
-- 표현 헤더는 전송, 응답 둘다 사용
- 협상 헤더 ( 콘텐츠 네고시에이션 ) - 클라이언트가 선호하는 표현을 서버에 요청
-- Accept : 클라이언트가 선호하는 미디어 타입 전달
-- Accept-Charset : 클라이언트가 선호하는 문자 인코딩
-- Accept-Encoding : 클라이언트가 선호하는 압축 인코딩
-- Accept-Language : 클라이언트가 선호하는 자연 언어
--- 협상 헤더는 요청시에만 사용.
**** 협상과 우선순위
-- 0~ 1 , 클수록 높은 우선순위
-- 생략하면 1
-- Accept-Language: ko-KR, ko;q=0.9 , en-US;q=0.8 , en;q=0.7
-- 1 ko-KR;q = 1 (q생략)
-- 2 ko;q = 0.9
-- 3 en-US;q = 0.8
-- 4 en;q = 0.7
**** 협상과 우선순위22
-- 구체적인 것이 우선한다.
-- Accept: text/* , text/plain, text/plain;format=flowed, */*
-- 1 text/plain;format = flowed
-- 2 text/plain
-- 3 text/*
-- 4 */*
- 전송방식
-- 단순 전송
-- 압축 전송
-- 분할 전송 -- 용량이 큰것을, 바이트로 나누어 따로따로 분할, 전송한다.
-- 범위 전송
- 쿠키
-- Set-Cookie : 서버에서 클라이언트로 쿠키 전달(응답)
-- Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달.
*** Stateless ( 무상태 )
-- HTTP 는 무상태 프로토콜이다.
-- 클라이언트와 서버가 요청과 응답을 주고 받으면 연결이 끊어진다.
-- 클라이언트가 다시 요청하면 서버는 이전 요청을 기억하지 못한다.
-- 클라이언트와 서버는 서로 상태를 유지하지 않는다 .
*** 쿠키 - 생명주기
--Set-Cookie : expires = Sat, 26-Dec-2020 04:39:21 GMT
- 만료일이 되면 쿠키 삭제
--Set-Cookie : max-age=3600 (3600초)
- 0이나 음수를 지정하면 쿠키삭제 .
--세션쿠키 : 만료 날짜를 생각하면 브라우저 종료시까지만 유지
--영속쿠키 : 만료 날짜를 입력하면 해당 날짜까지 유지
** 쿠키 - 도메인
-- 명시 : 명시한 문서 기준 도메인 + 서브 도메인 포함
-- ex ) domain = example.org 지정해서 쿠키 생성
-- example.org 는 물론이고. dev.example.org 도 쿠키 접근.
--생략 : 현재 문서 기준 도메인만 적용.
-- 도메인 지정을 생략하면. example.org 에서만 쿠키 접근.
** 쿠키 - 경로
-- ex ) path = /home
--이 경로를 포함한 하위 경로 페이지만 쿠키 접근
-- 일반적으로 path=/ 루트로 지정
** 쿠키 - 보안 ( Secure, HttpOnly, SameSite )
--Secure
-- 쿠키는 http , https 구분하지않고 전송
-- Secure 적용하면 https인 경우에만 전송
--HttpOnly
-- XSS공격방지
-- 자바스크립트에서는 접근불가
-- HTTP 전송에만 사용
--SameSite
-- XSRF 공격방지
-- 요청 도메인과 쿠키에 설정된 도메인이 같은경우만 쿠키전송
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런
www.inflearn.com
'Spring > HTTP 웹 기본지식' 카테고리의 다른 글
HTTP 헤더 ( 검증헤더, 조건부 요청 ) (0) | 2023.04.10 |
---|---|
HTTP 헤더 ( 캐시 ) (0) | 2023.04.10 |
HTTP 상태 코드 ( 에러코드 ) (0) | 2023.04.08 |
HTTP API 설계 (0) | 2023.04.07 |
HTTP 메서드 활용 (0) | 2023.04.07 |