본문 바로가기
네트워크

요청헤더 내용분석

by 개발자doc 2024. 6. 7.
목차
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