IT STUDY LOG
[네트워크 기초] HTTP 헤더 분석, ifconfig 명령어 조사 및 발표 준비 본문
[네트워크 기초] 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
'devops bootcamp 4 > assignment log' 카테고리의 다른 글
[서비스 모니터링] 쿠버네티스 클러스터 모니터링, 서비스 수준 목표 조사 및 발표 준비 (0) | 2023.06.05 |
---|---|
[Infrastructure as Code] IaC 조사 및 발표 준비 (0) | 2023.05.12 |
[네트워크 기초] 소켓, 포트, HTTP 버전 조사 및 발표 준비 (0) | 2023.04.06 |
[데이터베이스] 조사 및 발표 준비 (0) | 2023.03.29 |
[HTTP] REST API 모범 사례 조사 및 발표 준비 (0) | 2023.03.23 |