IT STUDY LOG

[네트워크 기초] HTTP 헤더 분석, ifconfig 명령어 조사 및 발표 준비 본문

devops bootcamp 4/assignment log

[네트워크 기초] HTTP 헤더 분석, ifconfig 명령어 조사 및 발표 준비

roheerumi 2023. 4. 7. 16:22

# 조사 및 발표

발표 주제 1

다음의 헤더를 보고 유추할 수 있는 내용을 모두 작성하세요.

요청 헤더

1. 요청 라인 

GET /career/jobs? company-Toss%20Global HTTP/1.1

- 메서드 : GET, (리퀘스트 바디가 없음)

- 요청 URL : /career/jobs?company=Toss%20Global

- HTTP 버전 : HTTP/1.1

 

2. 요청 헤더

콘텐츠 협상 관련 헤더

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif, image/webp, image/apng,*/*;q=0.8, application/signed-exchange; v-b3;q=0.9

- Accept 헤더 : 클라이언트가 선호하는 미디어 타입 전달 (q는 우선순위값이며 1에 가까울수록 높은 우선순위)

> text/html,application/xhtml+xml,application/xml;q=0.9 : 해당 미디어 타입 우선 순위값 0.9

> image/avif, image/webp, image/apng,*/*;q=0.8 : 해당 미디어 타입 우선 순위값 0.8

> application/signed-exchange; v-b3;q=0.9 :웹 콘텐츠를 보다 빠르게 로딩하고 보안을 강화하는 기술인 웹 패키지 형식 중 하나이며 v-b3은 버전 정보, 해당 미디어 타입 우선 순위값 0.9

Accept-Encoding: gzip, deflate, br

- Accept-Encoding 헤더 : 클라이언트가 선호하는 압축 인코딩

 > gzip, deflate, br

Accept-Language: ko-KR, ko;q=0.9, en-US;q=0.8,en;q=0.7

- Accept-Language 헤더 : 클라이언트가 선호하는 자연 언어

 > ko-KR : 해당 언어 우선 순위값 1 (q가 생략되었을 경우 1)

 > ko;q=0.9 : 해당 언어 우선 순위값 0.9

 > en-US;q=0.8 : 해당 언어 우선 순위값 0.8

 > en;q=0.7 : 해당 언어 우선 순위값 0.7

캐시, 커넥션, 쿠키, 호스트 헤더

Cache-Control: max-age=0

- Cache-Control 헤더 : 캐시 관련 헤더

 > max-age=0 : 초 단위의 캐시 유효 시간으로 현재 0초

Connection: keep-alive

- Connection 헤더 : 요청 이후 HTTP 연결/종료 관련 헤더

> keep-alive : 요청 이후 커넥션을 유지하며 연결 유지

Cookie: wcs_bt=s_12531fa025b4:1678301066; fbp=fb.1.1670301866646.233807232; amp_15e97d-dud-CKYnR3Ykpnv_JnxwEz...1gjir79dg.1gjir79dg.e.e.e; In_o r=d; _gid=GA1.2.1294750112.1670301067; _ga_5LBMWBVL71-GS1.1.1670301066.1.0.1670301066.0.0.0;
NTM5YS05NDQOLTMZZDVKMZEOMTceZiIsImNyZWFzWQiOjE2NZAZMDEwNjY200UsImV4aXN0aW5nIjpmYWxzZX0=;
hjFirstSeen=1;
hjsessionUser_1949956-eyJpZCI6IjZjNDJmMWELTZINGQt hjIncludedInSessionSample=0; _hjsessi on_1949956-eyJpZCI6IjJlNjc2ZmNiLTUzYzctNDhmYS1iZDViLTg2ZDMBOGNjWzioCISIMNYZWFzWQiOjE2NZAZMDEwNjY4MjAsImluU2FtcGxlIjpmYWxzZX0=; hjIncludedInPa
geviewSample=1; hjAbsoluteSessionInProgress=0; _ga=GA1.2.437173295.1670301867

  - Cookie 헤더 : 서버가 클라이언트 측에 유지하는 정보

Host: toss.im

- Host 헤더 : 웹 서버에 요청하는 도메인 이름, IP 주소를 명시

보안 관련 헤더

Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-site: same-origin
Sec-Fetch-User: ?1

- Sec-fetch 헤더 : 웹 브라우저가 리소스를 요청할 때 추가적인 보안, 개인 정보를 위해 사용하는 헤더

> Sec-Fetch-Dest: 요청의 예상 대상 명시

> sec-fetch-mode: 보안 헤더가 필수적으로 포함하는 값으로 요청이 어떤 모드로 수행되었는지 표시. 각 값은 요청의 보안 및 개인정보 보호 수준을 나타내며, 크로스 오리진 요청에 대한 보안 정책을 결정하는 데 사용

 > sec-fetch-site:  보안 요청 헤더로 해당 요청이 발생한 페이지의 출처(origin)와 요청을 보내는 페이지의 출처 사이의 관계를 나타내서 사이트 간 요청 위조(CSRF)와 같은 공격을 방지하기 위해 사용

 > sec-fetch-user : 사용자 인증 정보가 요청에 포함되어 있는지 표시. "?1"와  "?0"은 사용자 정보를 식별하며 CSRF(Cross-Site Request Forgery)와 같은 특정 유형의 공격으로부터 보호하기 위해 사용

Upgrade-Insecure-Requests: 1

- Upgrade-Insecure-Requests 헤더  : 보안 연결을 위해 HTTP 요청을 HTTPS로 업그레이드하는 기능을 가리키며 헤더가 설정된 경우 HTTP에서 로드되는 이미지, 스크립트, 스타일시트 등은 HTTPS를 통해 안전하게 로드됨 (값이 1일시 적용)

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36

- User-Agent 헤더 : 해당 HTTP 요청을 한 클라이언트의 브라우저, 운영체제 등의 정보

sec-ch-ua: "Not?A_Brand"; v="8", "Chromium"; v="108", "Google Chrome"; v="108
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "windows"

- sec-ch 헤더 : secure client hint 헤더로 웹 브라우저에서 특정 보안 정책을 적용하도록 지시하는 역할

 > sec-ch-ua: sec은 보안, ch는 클라이언트 힌트, ua는 user-agent로 보안 및 최적화를 위해 사용되는 User-Agent 정보를 나타냄 

 > sec-ch-ua-mobile : 사용자 에이전트(User Agent)가 모바일 기기에서 실행되는지 여부를 나타내는 지시자

 > sec-ch-ua-platform : 브라우저가 실행되고 있는 플랫폼의 정보를 제공

 

응답 헤더

1. 응답 라인

HTTP/1.1 200 OK

- HTTP 버전 : HTTP/1.1

- 응답 상태 코드 : 200

- 응답 상태 구문 : OK

 

2. 응답 헤더

Server: nginx

- Server 헤더 : 응답하는 웹 서버 정보 

Date: Tue, 06 Dec 2022 04:41:09 GMT

- Date 헤더 : 응답한 날짜와 시간

Content-Type: text/html; charset=utf-8

- Content-Type 헤더 : 표현 데이터 형식과 캐릭터 셋

Transfer-Encoding: chunked

- Transfer-Encoding 헤더 : 청크 인코딩, 메시지를 일정 크기의 청크 여럿으로 쪼개며 서버는 각 청크를 순차적으로 보냄

Connection: keep-alive

- Connection 헤더 : HTTP는 요청한 자원을 요청하고 응답받으면 통신을 종료하는 구조이나 keep-alive 옵션 설정을 통해 일정 시간 연결을 유지할 수 있음

Keep-Alive: timeout=60

- Keep-Alive 헤더 : keep-alive 옵션 시간을 설정 (이 경우 60초)

vary: Origin, Access-Control-Request-Method,Access-Control-Request-Headers

- vary 헤더 : 클라이언트가 받은 응답이 요청 헤더의 특정 필드에 의존하고 있을 때 해당 필드 이름을 지정

x-content-type-options: nosniff

- x-content-type-options 헤더 : 웹 보안 헤더로 브라우저가 MIME 유형 스니핑(MIME type sniffing)을 통해 리소스 유형을 감지하려는 시도를 차단하는 데 사용하며 값으로 "nosniff"를 사용

referrer-policy: same-origin

- referrer-policy 헤더 :  웹 사이트에서 링크를 클릭하여 다른 웹 페이지로 이동할 때, 이전 페이지의 정보(리퍼러)를 다음 페이지에서 어떻게 사용할지를 결정하는 정책 지정. 이 경우 같은 출처로 이동할 때만 이전 페이지의 정보를 전송

cross-origin-opener-policy: same-origin

- cross-origin-opener-policy 헤더 : 최상위 문서가 원본 간 문서와 브라우징 컨텍스트 그룹을 공유하지 않도록 함

x-envoy-upstream-service-time: 12

- x-envoy-upstream-service-time 헤더 : 요청이 Upstream 서비스에서 처리되는 데 걸린 시간을 밀리초(millisecond) 단위로 표현. 서비스에서 처리되는 데 소요된 시간을 클라이언트에게 보고하므로 서비스의 성능을 모니터링하고 디버깅하는 데 도움

content-encoding: gzip

- content-encoding 헤더 : 표현 데이터 인코딩 형식

X-Frame-Options: ALLOW-FROM https://gather.town

- X-Frame-Options 헤더 : 웹 보안 헤더로 브라우저가 웹 페이지를 로드할 때 해당 페이지를 iframe으로 불러오는 것을 방지함

Content-Security-Policy: frame-ancestors https://gather.town

- Content-Security-Policy 헤더 : 웹 애플리케이션에서 브라우저에게 특정한 보안 정책을 적용하는 데 사용되는 HTTP 응답 헤더로 웹 애플리케이션에서 로드되는 리소스의 원본을 명시하거나, 허용되는 리소스의 유형, 실행 가능한 스크립트의 정책 등을 설정하여 웹 애플리케이션의 보안을 강화할 수 있음

key-event-id: A6V465X44Q
x-toss-event-id: A6V46SX44Q
x-toss-response-code-details: via_upstream

- 기타 헤더 : 해당 웹사이트에서 별도로 사용하는 응답 헤더로 추정


발표 주제 2

리눅스에서 ifconfig 명령의 결과를 먼저 살펴보세요. 결과 중 lo0와 en의 차이가 뭘까요? ifconfig에서 ether, inet6, inet은 무엇을 의미하나요?

 

lo과 en

- lo와 en 모두 네트워크 인터페이스 이름으로 사용되는 일반적인 접두사

 

lo : 로컬 루프백 인터페이스 (Local Loopback Interface)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 171  bytes 14595 (14.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 171  bytes 14595 (14.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

- 127.0.0.1로 설정되며, 호스트 본인에게 데이터를 루프백함 -> 테스트, 디버깅에 사용

 > 루프백 : 전기 신호의 라우팅, 디지털 데이터 스트리밍이 가공, 수정 없이 본래 장치나 장비로 돌아가는 것 

- lo 인터페이스로 보내는 데이터는 네트워크를 거치지 않고 호스트 내부에서 처리

 

en : 이더넷 인터페이스 (Ethernet Interface)

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 44.4.4.44  netmask 255.255.255.0  broadcast xx.x.x.255
        inet6 6666::6666:6666:6666:6666  prefixlen 64  scopeid 0x20<link>
        ether 22:22:22:22:22:22  txqueuelen 1000  (Ethernet)
        RX packets 231  bytes 257901 (257.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 146  bytes 15201 (15.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

- 이더넷 카드를 나타내며 이더넷을 통해 네트워크에 연결된 디바이스와 통신하기 위해 사용하는 네트워크 인터페이스

 > 이더넷 : 컴퓨터 네트워크 기술 중 하나로 LAN, MAN, WAN에서 가장 많이 활용되는 기술 규격으로,  네트워크에 연결된 각 기기들이 48비트 길이의 고유의 MAC 주소를 가지고 이 주소를 이용해 상호간에 데이터를 주고 받을 수 있도록 만들어짐. 대표적인 장치에는 허브, 네트워크 스위치, 리피터 등이 존재

- 이더넷 인터페이스에는 IP 주소, 서브넷 마스크, MAC 주소 등 네트워크 설정 정보가 포함되어 있음

- 일반적으로 Local Area Network(LAN) 연결에 사용되며 인터넷에 접속하기 위해 IP 주소를 할당 받아서 사용

 

ether

- 해당 이더넷 네트워크 인터페이스의 MAC 주소로 48bit로 구성되며, 16진수료 표기하고 구분자는 콜론(:)

- 앞 24bit는 벤더사의 식별 정보이며, 뒤 24bit는 해당 기기의 고유 식별

- 윈도우의 경우 cmd 창에 getmac /v나 ipconfig /all 명령어로 확인 가능

 

inet6

- inet6은 해당 이더넷 네트워크 인터페이스의 IPv6 주소

- 16진수로 16bit씩 8부분을 콜론(:)으로 구분하며 총 128bit로 구성

- / 로 서브넷 마스크를 나타내며, Scope로 주소의 종류를 나타냄

 > Scope가 Link : 1개 이더넷 망에서 유효

 > Scope가 Site-Local : 1개 조직, 회사 내에서만 유효

 > Scope가 Global : ISP에서 부여

 

inet 

- inet은 해당 이더넷 네트워크 인터페이스의 IPv4 주소

- 10진수로 8bit씩 4부분을 온점(.)으로 구분하며 총 32bit로 구성

- net mask로 네트워크와 호스트 부분을 구분하며, 브로드 캐스트 주소를 표시


# References

챗 GPT

이더넷

루프백

HTTP 구조 조사 및 발표 준비

 

[HTTP] HTTP 구조 조사 및 발표 준비

[발표 주제] 스크린샷을 보고, HTTP의 구조, 요청과 응답, 헤더 등 유추할 수 있는 내용을 모두 작성하세요. 1. HTTP 구조 ① : 클라이언트와 서버간의 HTTP 요청, 응답 통신을 한 자원명 목록 ② : 해당

it-roheerumi.tistory.com

 

Comments