πŸ“š Computer Science/CS

[혼자 κ³΅λΆ€ν•˜λŠ” λ„€νŠΈμ›Œν¬] 5μž₯. μ‘μš© 계측

ibelieveinme 2025. 3. 16. 10:40
728x90

이 글은 γ€Œν˜Όμž κ³΅λΆ€ν•˜λŠ” λ„€νŠΈμ›Œν¬γ€ μ±… λ‚΄μš©μ„ μ •λ¦¬ν•œ λ‚΄μš©μž…λ‹ˆλ‹€.

μ €μž‘κΆŒ λ¬Έμ œμ‹œ μ‚­μ œν•˜κ² μŠ΅λ‹ˆλ‹€.


 

OSI λͺ¨λΈ

μ‘μš© 계측
ν‘œν˜„ 계측
μ„Έμ…˜ 계측
전솑 계측
λ„€νŠΈμ›Œν¬ 계측
데이터 링크 계측
물리 계측

 

 

05-1.DNS와 μžμ›

 

μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈκ°€ 'λ©”μ„Έμ§€λ₯Ό μ£Όκ³  λ°›κ³ μž ν•˜λŠ” λŒ€μƒ'κ³Ό 'μ†‘μˆ˜μ‹ ν•˜κ³ μž ν•˜λŠ” 정보'λ₯Ό 식별할 수 μžˆμ–΄μ•Ό ν•œλ‹€.

1) λ©”μ„Έμ§€λ₯Ό μ£Όκ³  λ°›κ³ μž ν•˜λŠ” λŒ€μƒμ„ μ‹λ³„ν•˜κΈ° μœ„ν•΄ IP μ£Όμ†Œ μ™Έμ— λ„메인 λ„€μž„μ„ μ‚¬μš©ν•  수 μžˆλ‹€.

2) μ†‘μˆ˜μ‹ ν•˜κ³ μž ν•˜λŠ” 정보λ₯Ό μ‹λ³„ν•˜κΈ° μœ„ν•΄ μœ„μΉ˜ 기반 μ‹λ³„μž URLκ³Ό 이름 기반 μ‹λ³„μž URN이 μžˆλ‹€.

 

 

* 도메인 λ„€μž„κ³Ό λ„€μž„ μ„œλ²„

 

1. 도메인 λ„€μž„

: 호슀트의 IP μ£Όμ†Œμ™€ λŒ€μ‘λ˜λŠ” λ¬Έμžμ—΄ ν˜•νƒœμ˜ 호슀트 νŠΉμ • 정보.

IP μ£Όμ†Œλ³΄λ‹€ κΈ°μ–΅ν•˜κΈ° 쉽닀. IP μ£Όμ†Œκ°€ λ°”λ€Œλ”λΌλ„ 바뀐 IP μ£Όμ†Œμ— 도메인 λ„€μž„μ„ λ‹€μ‹œ λŒ€μ‘ν•˜λ©΄ λ˜μ–΄ IP μ£Όμ†Œλ§ŒμœΌλ‘œ 호슀트λ₯Ό νŠΉμ •ν•˜λŠ” 것보닀 더 κ°„νŽΈν•˜λ‹€.

ex) www.naver.com,  www.google.com  λ“±

 

2. λ„€μž„ μ„œλ²„

: 도메인 λ„€μž„κ³Ό IP μ£Όμ†Œλ₯Ό λͺ¨μ•„ 관리.

곡용 μ „ν™”λ²ˆν˜ΈλΆ€ μ—­ν• 

 

cf) 개인 μ „ν™”λ²ˆν˜ΈλΆ€ μ—­ν• μ˜ 'hosts 파일'

: ν˜ΈμŠ€νŠΈλ§ˆλ‹€ κ°–κ³  μžˆλŠ” 도메인 λ„€μž„κ³Ό IP μ£Όμ†Œμ˜ λŒ€μ‘ 관계λ₯Ό 담은 파일.

- macOS 의 경우 /etc/hosts 에 μœ„μΉ˜

- μœˆλ„μš°μ˜ 경우 %SystemRoot%\System\drivers\etc\hosts

 

 

3. 도메인 λ„€μž„μ˜ ꡬ쑰

www.example.com 

 

 

도메인 λ„€μž„μ€ .을 κΈ°μ€€μœΌλ‘œ κ³„μΈ΅μ μœΌλ‘œ λΆ„λ₯˜λœλ‹€.

 

1) 루트 도메인: www.google.com.  μœΌλ‘œ 접속해도 λ˜μ§€λ§Œ μƒλž΅ν•΄μ„œ ν‘œκΈ°ν•œλ‹€.

2) μ΅œμƒμœ„ 도메인(TLD: Top-Level Domain): 도메인 λ„€μž„μ˜ κ°€μž₯ λ§ˆμ§€λ§‰ λΆ€λΆ„.

ex) com, net, org, kr(λŒ€ν•œλ―Όκ΅­), jp(일본), cn(쀑ꡭ), us(λ―Έκ΅­),...

3) 2단계 도메인: example

3) 3단계 도메인: www. www.example.com은 μ€ 3λ‹¨κ³„κΉŒμ§€ κ°€λ©΄ 도메인 λ„€μž„ 전체λ₯Ό 얻을 수 μžˆμ–΄μ„œ www λ₯Ό 호슀트 λ„€μž„μ΄λΌκ³  λΆ€λ₯΄κΈ°λ„ ν•œλ‹€.

cf) 전체 μ£Όμ†Œ 도메인 λ„€μž„μ„ (FQDN: Full-Qualified Domain Name) 라 μΉ­ν•œλ‹€

 

 

4. 계측적 λ„€μž„ μ„œλ²„

 

계측적인 도메인 λ„€μž„μ„ 효율적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ λ„€μž„ μ„œλ²„ λ˜ν•œ 계측적인 ν˜•νƒœλ₯Ό 이룬닀.

λ„€μž„ μ„œλ²„λŠ” μ—¬λŸ¬ 개 μ‘΄μž¬ν•˜λ©° μ „ 세계 μ—¬λŸ¬ ꡰ데에 μœ„μΉ˜ν•΄ μžˆλ‹€.

μ΄λ ‡κ²Œ κ³„μΈ΅μ μœΌλ‘œ λΆ„μ‚°λœ 도메인 λ„€μž„μ— λŒ€ν•œ 관리 체계λ₯Ό Domain Name System(DNS) 라 λΆ€λ₯Έλ‹€.

 

IP μ£Όμ†Œλ₯Ό λͺ¨λ₯΄λŠ” μƒνƒœμ—μ„œ 도메인 λ„€μž„μ— λŒ€μ‘ λ˜λŠ” IP μ£Όμ†Œλ₯Ό μ•Œμ•„λ‚΄λŠ” κ³Όμ •: 도메인 λ„€μž„μ„ ν’€μ΄ν•œλ‹€. λ¦¬μ‘ΈλΉ™ν•œλ‹€. 라고 ν‘œν˜„ν•¨.

 

1) 둜컬 λ„€μž„ μ„œλ²„

: ν΄λΌμ΄μ–ΈνŠΈμ™€ λ§žλ‹Ώμ•„ μžˆλŠ” λ„€μž„ μ„œλ²„. ν΄λΌμ΄μ–ΈνŠΈκ°€ 도메인 λ„€μž„μ„ 톡해 IP μ£Όμ†Œλ₯Ό μ•Œμ•„λ‚΄κ³ μž ν•  λ•Œ κ°€μž₯ λ¨Όμ € 찾게 λ˜λŠ” λ„€μž„ μ„œλ²„

- 둜컬 λ„€μž„ μ„œλ²„μ˜ μ£Όμ†ŒλŠ” ISPκ°€ ν• λ‹Ήν•΄ μ£ΌλŠ” κ²½μš°κ°€ 많고, 곡개 DNS μ„œλ²„λ₯Ό μ΄μš©ν•  μˆ˜λ„ μžˆλ‹€.

- λŒ€ν‘œμ μΈ 곡개 DNS μ„œλ²„μ˜ 예: κ΅¬κΈ€μ˜ 8.8.8.8, 8.8.4.4, ν΄λΌμš°λ“œν”Œλ ˆμ–΄μ˜ 1.1.1.1

 

2) 루트 λ„€μž„ μ„œλ²„

루트 도메인을 κ΄€μž₯ν•˜λŠ” λ„€μž„ μ„œλ²„. 

TLD λ„€μž„ μ„œλ²„μ˜ IP μ£Όμ†Œ λ°˜ν™˜.

 

3) TLD λ„€μž„ μ„œλ²„

TLDλ₯Ό κ΄€λ¦¬ν•˜λŠ” λ„€μž„ μ„œλ²„

TLD의 ν•˜μœ„ 도메인 λ„€μž„μ„ κ΄€λ¦¬ν•˜λŠ” λ„€μž„ μ„œλ²„ μ£Όμ†Œλ₯Ό λ°˜ν™˜

 

4) μ±…μž„ λ„€μž„ μ„œλ²„

μžμ‹ μ΄ κ΄€λ¦¬ν•˜λŠ” 도메인 μ˜μ—­μ˜ μ§ˆμ˜μ— λŒ€ν•΄μ„œλŠ” λ‹€λ₯Έ λ„€μž„ μ„œλ²„μ—κ²Œ μ „λ‹¬ν•˜μ§€ μ•Šκ³  κ³§λ°”λ‘œ λ‹΅ν•  수 μžˆλŠ” λ„€μž„ μ„œλ²„. 둜컬 λ„€μž„ μ„œλ²„κ°€ λ§ˆμ§€λ§‰μœΌλ‘œ μ§ˆμ˜ν•˜λŠ” λ„€μž„ μ„œλ²„.

 

 

* 도메인 λ„€μž„μ„ λ¦¬μ‘ΈλΉ™ν•˜λŠ” κ³Όμ •

: μž¬κ·€μ  질의, 반볡적 질의

 

1) μž¬κ·€μ  질의: ν΄λΌμ΄μ–ΈνŠΈκ°€ 둜컬 λ„€μž„ μ„œλ²„μ—κ²Œ 도메인 λ„€μž„μ„ μ§ˆμ˜ν•˜λ©΄, 둜컬 λ„€μž„ μ„œλ²„κ°€ 루트 λ„€μž„ μ„œλ²„μ—κ²Œ, 루트 λ„€μž„ μ„œλ²„κ°€ TLD λ„€μž„ μ„œλ²„μ—κ²Œ, TLD λ„€μž„ μ„œλ²„κ°€ λ‹€μŒ 단계에 μ§ˆμ˜ν•˜λŠ” 과정을 λ°˜λ³΅ν•˜κ³  μ΅œμ’… 응닡 κ²°κ³Όλ₯Ό μ—­μˆœμœΌλ‘œ μ „λ‹¬λ°›λŠ” 방식. 

 

2) 반볡적 질의: 둜컬 λ„€μž„ μ„œλ²„κ°€ λ„€μž„ μ„œλ²„λ“€μ—κ²Œ μ°¨λ‘€λ‘œ μ§ˆμ˜ν•΄μ„œ μ΅œμ’… 응닡 κ²°κ³Όλ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ•Œλ €μ£ΌλŠ” 방식

 

* DNS μΊμ‹œ: μ‹œκ°„ μ ˆμ•½μ„ μœ„ν•΄ λ„€μž„ μ„œλ²„λ“€μ΄ 기쑴에 응닡받은 κ²°κ³Όλ₯Ό μž„μ‹œ μ €μž₯해놨닀가 μΆ”ν›„ 같은 μ§ˆμ˜μ— λ°˜ν™˜

 

 

5.  URI(Uniform Resource Identifier)

: μžμ›μ„ 식별할 수 μžˆλŠ” 정보. μžμ›μ„ μ‹λ³„ν•˜λŠ” ν†΅μΌλœ 방식.

 

1) URL(Uniform Resource Locator): μœ„μΉ˜λ₯Ό μ΄μš©ν•΄ μžμ›μ„ μ‹λ³„ν•˜λŠ” 방식

2) URN(Uniform Resource Name): 이름을 μ΄μš©ν•΄ μžμ›μ„ μ‹λ³„ν•˜λŠ” 방식

 

*URL

1) scheme: μžμ›μ— μ ‘κ·Όν•˜λŠ” 방법. http, https

2) authority: 호슀트λ₯Ό νŠΉμ •ν•  수 μžˆλŠ” 정보. IP μ£Όμ†Œ, 도메인 λ„€μž„. (:) 으둜 포트번호λ₯Ό 뢙일 μˆ˜λ„ 있음.

3) path: μžμ›μ΄ μœ„μΉ˜ν•œ 경둜. (/) λ₯Ό κΈ°μ€€μœΌλ‘œ κ³„μΈ΅μ μœΌλ‘œ ν‘œν˜„

4) query: <query=value> ν˜•νƒœλ‘œ νŠΉμ • κ²°κ³Όλ₯Ό κ°€μ Έμ˜¬ 수 μžˆλ‹€.

5) fragment: μžμ›μ˜ ν•œ 쑰각을 가리킀기 μœ„ν•œ 정보. html 파일과 같은 μžμ›μ—μ„œ νŠΉμ • 뢀뢄을 가리킴.(슀크둀 이동)

 

 

* URN

: μžμ›μ— κ³ μœ ν•œ 이름을 λΆ€ν‹°λŠ” 이름 기반 μ‹λ³„μž. μžμ›μ˜ μœ„μΉ˜μ™€ λ¬΄κ΄€ν•˜κ²Œ μžμ›μ„ 식별할 수 μžˆλ‹€λŠ” μž₯점.

ex) urn:isbn.0451450523

 

 

 

05-2. HTTP

 

HTTP: μ‘μš© κ³„μΈ΅μ—μ„œ 정보λ₯Ό μ£Όκ³ λ°›λŠ” 데 μ‚¬μš©λ˜λŠ” ν”„λ‘œν† μ½œ

μš”μ²­κ³Ό 응닡을 기반으둜 λ™μž‘, λ―Έλ””μ–΄ 동립적, μƒνƒœλ₯Ό μœ μ§€ν•˜μ§€ μ•Šκ³  지속 연결을 μ§€μ›ν•œλ‹€.

 

1. HTTP의 νŠΉμ„±

 

1) μš”μ²­ - 응닡 기반 ν”„λ‘œν† μ½œ

: ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„κ°€ μ„œλ‘œ HTTP μš”μ²­ λ©”μ‹œμ§€μ™€ HTTP 응닡 λ©”μ‹œμ§€λ₯Ό μ£Όκ³ λ°›λŠ” ꡬ쑰둜 λ™μž‘ν•œλ‹€.

 

2) λ―Έλ””μ–΄ 독립적 ν”„λ‘œν† μ½œ

: 주고받을 μžμ›μ˜ νŠΉμ„±κ³Ό λ¬΄κ΄€ν•˜κ²Œ μžμ›μ„ 주고받을 μˆ˜λ‹¨μ˜ μ—­ν• λ§Œμ„ μˆ˜ν–‰ν•œλ‹€.

: HTTPμ—μ„œ λ©”μ‹œμ§€λ‘œ μ£Όκ³ λ°›λŠ” μžμ›μ˜ μ’…λ₯˜λ₯Ό λ―Έλ””μ–΄ νƒ€μž…(MIME νƒ€μž…) 이라고 λΆ€λ₯Έλ‹€. νƒ€μž…/μ„œλΈŒνƒ€μž… ν˜•νƒœλ‘œ λͺ…μ‹œ

 

3) μŠ€ν…Œμ΄νŠΈλ¦¬μŠ€ ν”„λ‘œν† μ½œ

: μ„œλ²„κ°€ HTTP μš”μ²­μ„ 보낸 ν΄λΌμ΄μ–ΈνŠΈμ™€ κ³ λ‚˜λ ¨λœ μƒνƒœλ₯Ό κΈ°μ–΅ν•˜μ§€ μ•ŠλŠ”λ‹€.

: TTTP μ„œλ²„κ°€ λ§Žμ€ ν΄λΌμ΄μ–ΈνŠΈμ™€ λ™μ‹œμ— μƒν˜Έμž‘μš©ν•΄μ•Ό ν•˜κ³  μ—¬λŸ¬ λŒ€λ‘œ κ΅¬μ„±λ˜λ―€λ‘œ μƒνƒœ 정보λ₯Ό μ €μž₯ν•˜κ³  μžˆμ§€ μ•ŠλŠ” 것이 μ„±λŠ₯μƒμ˜ 이점이 더 많기 λ•Œλ¬Έ.

: μ–Έμ œλ“  μ‰½κ²Œ μ„œλ²„λ₯Ό μΆ”κ°€ν•  수 있고(ν™•μž₯μ„±), μ„œλ²„ 쀑 ν•˜λ‚˜μ— λ¬Έμ œκ°€ 생겨도 μ‰½κ²Œ λ‹€λ₯Έ μ„œλ²„λ‘œ λŒ€μ²΄ κ°€λŠ₯ν•˜λ‹€.(견고성)

 

4) 지속 μ—°κ²° ν”„λ‘œν† μ½œ

: 맀번 μƒˆλ‘­κ²Œ 연결을 수립/μ’…λ£Œν•˜λŠ” 것 보닀 더 λΉ λ₯΄κ²Œ μ—¬λŸ¬ HTTP μš”μ²­κ³Ό 응닡을 μ²˜λ¦¬ν•  수 μžˆλ‹€.

 

 

2. HTTP λ©”μ‹œμ§€μ˜ ꡬ쑰

 

1) μ‹œμž‘λΌμΈ(μš”μ²­λΌμΈ/μƒνƒœλΌμΈ)

 

- HTTP μš”μ²­ λ©”μ‹œμ§€μΈ 경우: μš”μ²­ 라인.

λ©”μ„œλ“œ (곡백) μš”μ²­ λŒ€μƒ (곡백) HTTP 버전 (μ€„λ°”κΏˆ)

 

λ©”μ„œλ“œ: GET, POST, PUT, DELETE λ“±

μš”μ²­λŒ€μƒ: HTTP μš”μ²­μ„ 보낼 μ„œλ²„μ˜ μžμ›. http://www.example.com/hello?q=world 일 λ•Œ /hello?q=world

HTTP 버전: HTTP/<버전> ν˜•νƒœλ‘œ μ μ–΄μ€Œ

 

- HTTP 응닡 λ©”μ‹œμ§€μΈ 경우: μƒνƒœ 라인.

HTTP 버전 (곡백) μƒνƒœ μ½”λ“œ (곡백) 이유 ꡬ문 * (μ€„λ°”κΏˆ)

 

μƒνƒœ μ½”λ“œ: μš”μ²­μ— λŒ€ν•œ κ²°κ³Όλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 3자리 μ •μˆ˜

이유 ꡬ문: μƒνƒœ μ½”λ“œμ— λŒ€ν•œ λ¬Έμžμ—΄ ν˜•νƒœμ˜ μ„€λͺ…

 

ex) HTTP/1.1 200 OK, HTTP/1.1 404 Not Found

 

2) ν•„λ“œ 라인(헀더 라인)

: 0개 μ΄μƒμ˜ HTTP 헀더가 λͺ…μ‹œλ¨. HTTP 톡신에 ν•„μš”ν•œ λΆ€κ°€ 정보.

 

3) λ©”μ‹œμ§€ λ³Έλ¬Έ

: λ©”μ‹œμ§€ 본문은 μ‘΄μž¬ν•˜μ§€ μ•Šμ„ μˆ˜λ„ 있고, Json, html λ“± λ‹€μ–‘ν•œ μ½˜ν…μΈ  νƒ€μž…μ΄ μ‚¬μš©λ  수 μžˆλ‹€.

 

3. HTTP λ©”μ„œλ“œ

 

* GET μ˜ˆμ‹œ

 

* API λ¬Έμ„œ

: μ–΄λ–€ URL에 μ–΄λ–€ λ©”μ„œλ“œλ₯Ό 보낼 수 μžˆλŠ”μ§€, μ–΄λ–€ 쿼리 λ¬Έμžμ—΄μ΄ μ‚¬μš©λ  수 μžˆλŠ”μ§€, μ˜¬λ°”λ₯΄κ²Œ μš”μ²­μ„ λ³΄λƒˆμ„ 경우 μ–΄λ–€ 응닡 λ©”μ‹œμ§€λ₯Ό 받을 수 μžˆλŠ”μ§€ 등을 λͺ…μ‹œν•œ κ°€μ΄λ“œ λ¬Έμ„œ

 

 

4. HTTP μƒνƒœμ½”λ“œ

 

202: μž‘μ—…μ‹œκ°„μ΄ κΈ΄ λŒ€μš©λŸ‰ 파일 μ—…λ‘œλ“œ μž‘μ—…μ΄λ‚˜ 배치 μž‘μ—…κ³Ό 같이 μš”μ²­ κ²°κ³Όλ₯Ό κ³§λ°”λ‘œ μ‘λ‹΅ν•˜κΈ° μ–΄λ €μš΄ 상황

 

λ¦¬λ‹€μ΄λ ‰μ…˜ μƒνƒœ: μš”μ²­μ„ μ™„μˆ˜ν•˜κΈ° μœ„ν•΄ 좔가적인 μ‘°μΉ˜κ°€ ν•„μš”ν•œ μƒνƒœ

영ꡬ적인 λ¦¬λ‹€μ΄λ ‰μ…˜: μžμ›μ΄ μ™„μ „νžˆ μƒˆλ‘œμš΄ 곳으둜 μ΄λ™ν•΄μ„œ κ²½λ‘œκ°€ 영ꡬ적으둜 μž¬μ§€μ •λœ μƒνƒœ

 

μΌμ‹œμ μΈ λ¦¬λ‹€μ΄λ ‰μ…˜: μžμ›μ˜ μœ„μΉ˜κ°€ μž„μ‹œλ‘œ λ³€κ²½λœ μƒνƒœ

 

ν΄λΌμ΄μ–ΈνŠΈμ— μ˜ν•œ μ—λŸ¬κ°€ μžˆλŠ” μƒνƒœ.

μ„œλ²„κ°€ μ²˜λ¦¬ν•  수 μ—†λŠ” ν˜•νƒœλ‘œ μš”μ²­ν–ˆκ±°λ‚˜ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μžμ›μ— λŒ€ν•œ μš”μ²­μ„ λ³΄λ‚΄λŠ” 경우

 

μ„œλ²„ μ—λŸ¬μ— λŒ€ν•œ μƒνƒœ.

 

 

5. HTTP의 λ°œμ „

1) HTTP/0.9: μ‚¬μš©κ°€λŠ₯ν•œ λ©”μ„œλ“œ GET, μš”μ²­ λ©”μ‹œμ§€ ν•œ μ€„λ‘œ ꡬ성. 헀더 μ§€μ›λΆˆκ°€

 

2) HTTP/1.0: HEAD, POST λ©”μ„œλ“œ μΆ”κ°€. 헀더 지원 μ‹œμž‘. 지속 μ—°κ²° 지원 λΆˆκ°€.

 

3) HTTP/1.1: 지속 μ—°κ²° 지원. 응닡 전에 λ‹€μŒ μš”μ²­μ„ 보낼 수 μžˆλŠ” νŒŒμ΄ν”„λΌμ΄λ‹ κΈ°λŠ₯ μΆ”κ°€. μ½˜ν…μΈ  ν˜‘μƒ κΈ°λŠ₯ λ“± λ‹€μ–‘ν•œ 편의 κΈ°λŠ₯ 및 μ‚¬μš© κ°€λŠ₯ν•œ 헀더 μΆ”κ°€. μ˜€λŠ˜λ‚ κΉŒμ§€ 널리 μ‚¬μš©λ˜λŠ” 버전.

 

4) HTTP/2.0: HTTP/1.1의 효율과 μ„±λŠ₯을 높인 버전. 헀더 μ••μΆ• 전솑, λ°”μ΄λ„ˆλ¦¬ 데이터 기반의 λ©”μ‹œμ§€ μ†‘μˆ˜μ‹ , λ―Έλž˜μ— μ‚¬μš©λ  κ²ƒμœΌλ‘œ μ˜ˆμƒλ˜λŠ” μžμ›μ„ 미리 μ „μ†‘ν•΄μ£ΌλŠ” μ„œλ²„ ν‘Έμ‹œ κΈ°λŠ₯ 제곡. λ³‘λ ¬λ‘œ λ©”μ‹œμ§€λ₯Ό μ£Όκ³ λ°›λŠ” λ©€ν‹°ν”Œλ ‰μ‹± 기술 λ„μž….

 

5) HTTP/3.0: 이전 버전듀이 TCP 기반으둜 λ™μž‘ν•˜λŠ” 것과 달리 UDP 기반으둜 λ™μž‘. λΉ„μ—°κ²°ν˜• ν”„λ‘œν† μ½œ UDP κ°€ 더 λΉ¨λΌμ„œ 속도가 λŒ€ν­ ν–₯상됨.

 

 

05-3. HTTP 헀더와 HTTP 기반 기술

 

1. HTTP 헀더

1) μš”μ²­ μ‹œ ν™œμš©λ˜λŠ” HTTP 헀더

- Host: μš”μ²­μ„ 보낼 호슀트λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 헀더. 도메인 λ„€μž„μœΌλ‘œ λͺ…μ‹œ 됨.

GET /hypertext/WWW/TheProject.html HTTP/1.1
Host: info.cern.ch

 

- User-Agent: HTTP μš”μ²­μ„ μ‹œμž‘ν•˜λŠ” ν΄λΌμ΄μ–ΈνŠΈ 츑의 ν”„λ‘œκ·Έλž¨κ³Ό κ΄€λ ¨λœ 정보 λͺ…μ‹œ.

User-Agent: Mozilla/5.0 (Windows NT 10.0; win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0

 

- Referer: ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­μ„ 보낼 λ•Œ 머무λ₯΄κ³  있던 URL이 λͺ…μ‹œ 됨. ν΄λΌμ΄μ–ΈνŠΈμ˜ μœ μž… 경둜 νŒŒμ•… κ°€λŠ₯

Referer: https://en.wikipedia.org/

 

- Authorization: ν΄λΌμ΄μ–ΈνŠΈμ˜ 인증 정보 λͺ…μ‹œ. Basic 인증(Base64 둜 μΈμ½”λ”©ν•œ 값을 λͺ…μ‹œν•¨.), Bearer 인증(OAuth 인증)

Basic 인증과 Bearer 인증의 λͺ¨λ“  것

Authorization: Basic bWluY2h1bDoxMjM0

 

Authorization: Bearer <token κ°’>

 

2) 응닡 μ‹œ μ‚¬μš©λ˜λŠ” HTTP 헀더

- Server: μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” μ„œλ²„ 츑의 μ†Œν”„νŠΈμ›¨μ–΄μ™€ κ΄€λ ¨λœ 정보λ₯Ό λͺ…μ‹œ

Server: Apache/2.4.1 (Unix)

 

- Allow: ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ ν—ˆμš©λœ HTTP λ©”μ„œλ“œ λͺ©λ‘μ„ λͺ…μ‹œ. 405(Method Not Allowed) μƒνƒœ μ½”λ“œμ—μ„œ μ‘λ‹΅ν•˜λŠ” λ©”μ‹œμ§€μ— Allow 헀더가 ν•¨κ»˜ μ‚¬μš©λ¨.

Allow: POST, OPTIONS

 

- Retry-After: μžμ›μ„ μ‚¬μš©ν•  수 μžˆλŠ” λ‚ μ§œ ν˜Ήμ€ μ‹œκ°μ„ λ‚˜νƒ€λƒ„. 503(Service Unavailable) μƒνƒœ μ½”λ“œμ—μ„œ μ‘λ‹΅ν•˜λŠ” λ©”μ‹œμ§€μ— Retry-After 헀더가 ν•¨κ»˜ μ‚¬μš©λ¨.

Retry-After: Fri, 23 Aug 2024 09:00:00 GMT
Retry-After: 120

 

- Location: ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μžμ›μ˜ μœ„μΉ˜λ₯Ό μ•Œλ € μ£ΌκΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” 헀더

 

- WWW-Authorization: μžμ›μ— μ ‘κ·Όν•˜κΈ° μœ„ν•œ 인증 방식을 μ„€λͺ…ν•˜λŠ” 헀더. 

WWW-Authorization: Basic realm="Access to engineering site", charset="UTF-8"

 

 

3) μš”μ²­ 및 응닡 λͺ¨λ‘μ—μ„œ μ‚¬μš©λ˜λŠ” HTTP 헀더

-Date: λ©”μ‹œμ§€κ°€ μƒμ„±λœ λ‚ μ§œμ™€ μ‹œκ°μ— κ΄€λ ¨λœ 정보λ₯Ό 담은 헀더.

Date: Tue, 15 Nov 1994 08:12:31 GMT

 

- Connection: ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­κ³Ό 응닡 κ°„μ˜ μ—°κ²° 방식을 μ„€μ •ν•˜λŠ” 헀더

Connection: keep-alive
Connection: close

 

- Content-Length: 본문의 λ°”μ΄νŠΈ λ‹¨μœ„ 크기(길이)

Content-Length: 100

 

- Content-Type, Content-Language, Content-Encoding: λ©”μ‹œμ§€ 본문의 ν‘œν˜„ 방식

Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip

 

 

* μΊμ‹œ

: λΆˆν•„μš”ν•œ λŒ€μ—­ν­ 낭비와 응닡 지연을 λ°©μ§€ν•˜κΈ° μœ„ν•΄ μ •λ³΄μ˜ 사본을 μž„μ‹œλ‘œ μ €μž₯ν•˜λŠ” 기술

 

* μΊμ‹œ 신선도

μΊμ‹œλœ 사본 데이터가 μ–Όλ§ˆλ‚˜ μ΅œμ‹  원본 데이터와 μœ μ‚¬ν•œμ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 정도

 

1) μΊμ‹œλœ 데이터에 유효 기간을 μ„€μ •ν•˜λŠ” 방법

Expires: <λ‚ μ§œ>

Cache-Control: max-age=<초>

 

2) μΊμ‹œμ˜ 유효 기간이 λ§Œλ£Œλ˜μ—ˆλ”λΌλ„ μ—¬μ „νžˆ μ΅œμ‹  μƒνƒœμ˜ 정보인지 확인

μš”μ²­: If-Modifed-Since: <λ‚ μ§œ>

응닡: μš”μ²­λ°›μ€ μžμ›μ΄ λ³€κ²½λ˜μ—ˆμŒ(200(OK)), μš”μ²­λ°›μ€ μžμ›μ΄ λ³€κ²½λ˜μ§€ μ•Šμ•˜μŒ(304(Not Modified)), μš”μ²­λ°›μ€ μžμ›μ΄ μ‚­μ œλ˜μ—ˆμŒ(404(Not Found))

 

3) μžμ›μ˜ λ²„μ „μœΌλ‘œ μš”μ²­ν•˜κΈ°

μš”μ²­: If-None-Match: <μ—”ν‹°ν‹° νƒœκ·Έ>

응닡: μš”μ²­λ°›μ€ μžμ›μ΄ λ³€κ²½λ˜μ—ˆμŒ(200(OK)), μš”μ²­λ°›μ€ μžμ›μ΄ λ³€κ²½λ˜μ§€ μ•Šμ•˜μŒ(304(Not Modified)), μš”μ²­λ°›μ€ μžμ›μ΄ μ‚­μ œλ˜μ—ˆμŒ(404(Not Found))

 

 

* μΏ ν‚€

: μ„œλ²„μ—μ„œ μƒμ„±λ˜μ–΄ ν΄λΌμ΄μ–ΈνŠΈ 츑에 μ €μž₯λ˜λŠ” 데이터.

μƒνƒœλ₯Ό μœ μ§€ν•˜μ§€ μ•ŠλŠ” HTTP 의 νŠΉμ„±μ„ λ³΄μ™„ν•˜κΈ° μœ„ν•œ μˆ˜λ‹¨.

<이름, κ°’> 쌍의 ν˜•νƒœ.

ex) Session 인증

쿠킀에 μ‚¬μš©κ°€λŠ₯ν•œ 도메인, κ²½λ‘œλ„ ν•¨κ»˜ μ €μž₯λœλ‹€.

 

μš”μ²­ λ©”μ‹œμ§€

Cookie: 이름=κ°’; 이름=κ°’;

 

응닡 λ©”μ‹œμ§€

HTTP/1.1 200 OK

Content-Type: text/html

Set-Cookie: name=minchul; phone=100-100; message=Hello; Expires=Fri, 23 Aug 2024 09:00:00 GMT

 

* μΏ ν‚€ λ³΄μ•ˆ

Secure: HTTPS ν”„λ‘œν† μ½œμ΄ μ‚¬μš©λ˜λŠ” κ²½μš°μ—λ§Œ μΏ ν‚€λ₯Ό μ „μ†‘λ˜λ„λ‘ ν•˜λŠ” 속성

HttpOnly: HTTP μ†‘μˆ˜μ‹ μ„ ν†΅ν•΄μ„œλ§Œ μΏ ν‚€λ₯Ό μ΄μš©ν•˜λ„λ‘ μ œν•œν•˜λŠ” 속성

 

* μΏ ν‚€μ˜ ν˜‘μƒκ³Ό ν‘œν˜„

: 같은 URI 에 λŒ€ν•΄ κ°€μž₯ μ ν•©ν•œ μžμ›μ˜ ν˜•νƒœλ₯Ό μ œκ³΅ν•˜λŠ” λ§€μ»€λ‹ˆμ¦˜

Accept-Language, Accept-Charset, Accept-Encoding λ“±μœΌλ‘œ μ„ ν˜Έν•˜λŠ” μžμ›μ„ λͺ…μ‹œν•΄μ„œ μš”μ²­ν•  수 μžˆλ‹€.

728x90