목차
1. host
2. sec-fetch-site
3. connection
4. upgrade-insecure-requests
5. sec-fetch-mode
6. accept
7. user-agent
8. accept-language
9. sec-fetch-dest
10. accept-encoding
http로 서버에 요청을 하게 되면 헤더에 다음과 같은 내용이 포함된다. 이 내용들을 몰라도 크게 상관은 없지만 알고 있다면 요청시 문제가 발생했을 때 분석하여 해결할 수도 있다. 헤더에는 어떤 내용들이 있는지 알아보도록 하자.
host: 'localhost:3000',
'sec-fetch-site': 'none',
connection: 'keep-alive',
'upgrade-insecure-requests': '1',
'sec-fetch-mode': 'navigate',
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15',
'accept-language': 'ko-KR,ko;q=0.9',
'sec-fetch-dest': 'document',
'accept-encoding': 'gzip, deflate'
1. host
요청을 했을 때 서버의 주소를 의미한다.
host: 'localhost:3000',
2. sec-fetch-site
요청의 출처를 나타내는 것으로 어떻게 경로를 통해 서버에 요청하게 되었는지 표시하는 것이다.
'sec-fetch-site': 'none',
해당 헤더 값은 고정된 것이 아니면 다른 값으로 표시될 수 있다.
none | 사용자가 직접 URL을 입력하여 요청한 경우 | |
same-origin | 동일 출처, 즉 같은 서버 내에서 요청을 다시할 경우 | |
same-site | 동일 사이트, 즉 이전 페이지와 같은 페이지에서 요청을 한 경우 | |
cross-site | 타 사이트에서 요청을 한 경우 |
3. connection
클라이언트와 서버의 연결에 관한 내용이다.
connection: 'keep-alive',
keep-alive | 클라이언트와 서버가 연결을 유지하고 동일한 연결을 재사용, 성능 최적화 |
close | 요청 후 서버와의 연결을 종료 |
특정 확장 값 | HTTP 1.1버전에서는 특정 확정 프로토콜을 지정할 수 있음. ex) upgrade |
4. upgrade-insecure-requests
클라이언트가 서버로 요청할 때 HTTP를 HTTPS로 보안 업그레이드 하는 것인지에 관한 내용이다.
'upgrade-insecure-requests': '1',
5. sec-fetch-mode
요청에 대한 모드를 나타낸다.
'sec-fetch-mode': 'navigate',
cors | 동일 출처 정책을 우회하고 다른 출처의 리소스에 접근 |
no-cors | 제한된 교차 출처 요청을 나타내는 것으로 보안상의 이유로 대부분의 읽기 요청을 차단하는 기본 모드 |
same-origin | 동일 출처, 즉 같은 서버 내에서 요청을 다시할 경우 |
navigate | 사용자가 직접 URL을 입력하여 요청한 경우 |
websocket | 웹 소켓을 통한 연결 요청 |
nested-navigate | iframe 안에서 새로운 페이지를 로드할 때 사용 |
6. accept
서버가 클라리언트에게 받을 수 있는 컨텐츠의 유형을 표시하는 것이다.
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
1 ) 텍스트 및 HTML
text/html | HTML 문서 |
text/plain | 일반 텍스트 문서 |
text/css | CSS 파일 |
2 ) 애플리케이션
application/json | JSON 형식 데이터 |
application/xml | XML 형식 데이터 |
application/xhtml+xml | XHTML 문서 |
application/javascript | JavaScript 파일 |
application/pdf | PDF 파일 |
application/octet-stream | 파일 다운로드 등의 임의의 바이너리 데이터 |
3 ) 이미지
image/jpeg | JPEG 이미지 |
image/png | PNG 이미지 |
image/gif | GIF 이미지 |
image/webp | WebP 이미지 |
image/svg+xml | SVG 이미지 |
4 ) 비디오 및 오디오
video/mp4 | MP4 비디오 파일 |
video/webm | WebM 비디오 파일 |
audio/mpeg | MP3 오디오 파일 |
audio/ogg | OGG 오디오 파일 |
5 ) 기타
- */* : 기타 파일
- application/vnd.<vendor>.<subtype>, application/vnd.<vendor>+json 등: 특정 벤더 형식
7. user-agent
서버에 요청을 보내는 사용자(클라이언트)의 사용 소프트웨어 정보를 나타낸다. 주로 os와 브라우저의 정보를 담고 있다.
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15',
8. accept-language
클라이언트가 사용하는 언어로 위 헤더 내용에서는 한국어로 표시가 되어있다.
앞의 ko-KR은 한국어를 의미하며 영어일 경우 en-US등의 형식으로 표시가 된다.
q는 우선 순위를 나타내는 것으로 0~1사이의 값으로 기본값은 1이다. 숫자가 낮을 수록 우선순위가 낮다.
'accept-language': 'ko-KR,ko;q=0.9',
9. sec-fetch-dest
서버의 어떤 리소스를 요청하고 있는지에 대한 내용이다.
현재 요청은 html문서를 요청하고 있는 것으로 document라고 표시된다.
'sec-fetch-dest': 'document',
document | HTML 문서 | media | 오디오 및 비디오 파일 |
script | JavaScript 파일 | embed | 임베디드 콘텐츠 (예: <embed> 태그) |
style | css파일 | frame,iframe | <iframe> 태그의 콘텐츠 |
image | 이미지 파일 | manifest | 웹 애플리케이션 매니페스트 파일 |
font | 웹 폰트 | report | 보고서 데이터를 수집하는 요청 |
object | 웹 폰트 파일 | serviceworker | 서비스 워커 스크립트 |
xslt | XSLT 스타일시트 | sharedworker | 공유 워커 스크립트 |
empty | 비어 있는 목적지, 주로 내부 또는 비표준 요청에 사용 | webidentity | 웹 인증 관련 요청 |
10. accept-encoding
서버가 요청에 대한 응답을 압축할 때 사용하는 인코딩 방식을 정의한다.
'accept-encoding': 'gzip, deflate'
gzip | GNU zip 방식의 압축 |
deflate | zlib 형식의 압축 |
br | HTTPS를 통해 제공될 때 하는 Brotli 압축 |
compress | Unix compress 프로그램에 의해 사용되는 방식 |
identity | 압축 없이 전송하는 것으로 기본값 |
* | 모든 인코딩 방식 |
'네트워크' 카테고리의 다른 글
소켓 (2) | 2024.06.16 |
---|---|
네트워크의 내 주소 IP (0) | 2024.06.02 |
HTTP? (0) | 2024.06.01 |
어디로 접속해야돼?...PORT (0) | 2024.05.30 |
TCP vs UDP (0) | 2024.05.26 |