인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊
1. 콘텐츠 협상(Contents Negotiation)
클라이언트가 선호하는 표현 요청
- 협상 헤더는 요청시에만 사용
1) Accept : 클라이언트가 선호하는 미디어 타입 전달
2) Accept-Charset: 클라이언트가 선호하는 문자 인코딩
3) Accept-Encoding: 클라이언트가 선호하는 압축 인코딩
4) Accept-Language: 클라이언트가 선호하는 자연 언어
👉 Accept-Language 적용 전
한국어 브라우저 사용하여 클라이언트에서 GET /event 요청을 보내면
서버는 클라이언트가 어떤 언어를 요청한 지 모르기 때문에 기본 언어인 영어로 응답한다.
👉 Accept-Language 적용 후
한국어 브라우저 사용하여 클라이언트에서 GET /event Accept-Language: ko 요청을 보내면
서버는 기본 언어가 영어로 지원되지만 한국어도 지원이 가능하기 때문에 한국어로 응답한다.
👉 Accept-Language 복잡한 예시
한국어 브라우저 사용하여 클라이언트에서 GET /event Accept-Language: ko 요청을 보내면
서버는 다중 언어 지원 서버에는 한국어가 없어 기본 지원하는 독일어를 응답한다.
2. 협상과 우선순위1 ( Quality Values(q) )
• Quality Values(q) 값 사용
• 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 (영어-US)
4. en;q=0.7 (영어 공통)
👉 Accept-Language 복잡한 예시
한국어 브라우저 사용하여 클라이언트에서 Accept-Language: ko-KR (한국어 우선순위 1), ko;q=0.9,en-US;q=0.8,en;q=0.7 로 요청을 보내면,
서버가 한국어를 지원하지 않으므로 기본 독일어(de)로 다음으로 우선순위인 영어로 응답한다.
3. 협상과 우선순위2 (Quality Values(q))
• 구체적인 것이 우선한다.
• Accept: text/*, text/plain, text/plain;format=flowed, */*
1. text/plain;format=flowed
2. text/plain
3. text/*
4. */*
3. 협상과 우선순위3 (Quality Values(q))
• 구체적인 것을 기준으로 미디어 타입을 맞춘다.
• Accept: text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5
'📚 Computer Science > Network' 카테고리의 다른 글
[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더1 (일반 헤더) - 일반 정보, 특별한 정보 (0) | 2023.08.16 |
---|---|
[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더1 (일반 헤더) - 전송 방식 (0) | 2023.08.16 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더1 (일반 헤더) - HTTP 헤더 개요, 표현 (0) | 2023.08.16 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 6. HTTP 상태코드 - 4XX 클라이언트 오류, 5XX 서버 오류 (0) | 2023.08.14 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 6. HTTP 상태코드 - 3XX 리다이렉션 (0) | 2023.08.14 |