[LG U+ ์œ ๋ ˆ์นด 3๊ธฐ]HTTP์™€ HTTPS์˜ ๋ชจ๋“  ๊ฒƒ

2025. 10. 29. 11:30ใ†CS์ •๋ฆฌ

๐Ÿงฉ HTTP ํ”„๋กœํ† ์ฝœ ์™„๋ฒฝ ์ดํ•ด


โถ HTTP๋ž€?

HTTP (HyperText Transfer Protocol)์€ ์ธํ„ฐ๋„ท์—์„œ ํด๋ผ์ด์–ธํŠธ(๋ณด๋‚ด๋Š” ์ชฝ)๊ณผ ์„œ๋ฒ„(๋ฐ›๋Š” ์ชฝ)์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

์ฆ‰, ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ ๋Œ€ํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด(์•ฝ์†)์ธ ์…ˆ์ด๋‹ค.

---

โท TCP/IP ์œ„์—์„œ ๋™์ž‘ํ•œ๋‹ค๋Š” ๋œป

HTTP ์ž์ฒด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ „์†กํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋Œ€์‹  TCP/IP๊ฐ€ ‘๋ฐ์ดํ„ฐ ์ „์†ก’์„ ๋‹ด๋‹นํ•˜๊ณ , HTTP๋Š” ‘๋ฌด์—‡์„ ์ฃผ๊ณ ๋ฐ›์„์ง€’๋ฅผ ์ •์˜ํ•œ๋‹ค.

๊ณ„์ธต ์—ญํ•  ์˜ˆ์‹œ
Application ๋ฌด์—‡์„ ์ฃผ๊ณ ๋ฐ›์„์ง€ HTTP, FTP
Transport ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ „์†กํ• ์ง€ TCP, UDP
Internet ์–ด๋””๋กœ ๋ณด๋‚ผ์ง€ IP
Network Access ๋ฌผ๋ฆฌ์  ์—ฐ๊ฒฐ Ethernet, Wi-Fi

์ฆ‰, IP๋Š” ์ฃผ์†Œ(์–ด๋””๋กœ), TCP๋Š” ์‹ ๋ขฐ์„ฑ ์žˆ๊ฒŒ ์ „์†ก(์–ด๋–ป๊ฒŒ), HTTP๋Š” ๋ฌด์—‡์„ ๋ณด๋‚ผ์ง€(๋ฌด์Šจ ๋‚ด์šฉ)์„ ๋‹ด๋‹นํ•œ๋‹ค.

---

โธ Stateless (๋น„์ƒํƒœ์„ฑ)

HTTP์˜ ์ค‘์š”ํ•œ ํŠน์ง•์€ Stateless, ์ฆ‰ ๋ฌด์ƒํƒœ์„ฑ์ด๋‹ค. ์ด๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ด์ „ ์š”์ฒญ ์ƒํƒœ๋ฅผ ๊ธฐ์–ตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค.

๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ํ›„ ๋‹ค๋ฅธ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„๋Š” ๊ทธ ์‚ฌ๋žŒ์ด ์ด์ „์— ๋กœ๊ทธ์ธํ–ˆ๋˜ ์‚ฌ๋žŒ์ธ์ง€ ๋ชจ๋ฅธ๋‹ค.

๊ทธ๋ž˜์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)์„ ์‚ฌ์šฉํ•œ๋‹ค.

์žฅ์ : ๋‹จ์ˆœํ•˜๊ณ  ํ™•์žฅ์„ฑ ๋†’์Œ.
๋‹จ์ : ๋งค๋ฒˆ ์ƒํƒœ์ •๋ณด๋ฅผ ์ƒˆ๋กœ ๋ณด๋‚ด์•ผ ํ•˜๋ฏ€๋กœ ๋น„ํšจ์œจ์ .

---

โน 1990๋…„๋Œ€์˜ CS Programming๊ณผ HTTP์˜ ๊ด€๊ณ„

1990๋…„๋Œ€ ์ดˆ๋ฐ˜์—” ์›น์ด ๋Œ€์ค‘ํ™”๋˜๊ธฐ ์ „์ด๋ผ, HTTP ๋Œ€์‹  TCP/UDP/FTP ๋“ฑ ์ €์ˆ˜์ค€ ํ†ต์‹ ์œผ๋กœ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์•˜๋‹ค.

์ด๋Ÿฐ ๋ฐฉ์‹์ด ๋ฐ”๋กœ Client–Server Programming์ด์—ˆ๊ณ , ๋Œ€๋ถ€๋ถ„ ์‚ฌ๋‚ด๋ง(Intranet)์—์„œ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.

๊ฐ ํšŒ์‚ฌ๋งˆ๋‹ค ์ž์ฒด ํ”„๋กœํ† ์ฝœ์„ ๋งŒ๋“ค์–ด ์“ฐ๋˜ ์‹œ์ ˆ์—์„œ, HTTP๋Š” ๋ชจ๋“  ์›น ํ†ต์‹ ์„ ํ‘œ์ค€ํ™”์‹œํ‚จ ๊ฒฐ์ •์ ์ธ ๊ธฐ์ˆ ์ด์—ˆ๋‹ค.

---

โบ ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response)์˜ ๊ตฌ์กฐ

๐Ÿ”น ์š”์ฒญ(Request)

GET /index.html HTTP/1.1
Host: www.example.com
Authorization: Bearer API_KEY
Content-Type: application/json

{ "username": "jinwoo", "password": "1234" }
  • Start Line — Method + URL + Version
  • Header — ์š”์ฒญ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ (APIํ‚ค, ๋ธŒ๋ผ์šฐ์ €์ •๋ณด ๋“ฑ)
  • Body — POST, PUT ์š”์ฒญ ์‹œ ์‹ค์ œ ์ „์†กํ•  ๋ฐ์ดํ„ฐ

๐Ÿ”น ์‘๋‹ต(Response)

HTTP/1.1 200 OK
Content-Type: text/html
Date: Wed, 29 Oct 2025 10:00:00 GMT

<html>Hello, World!</html>
  • Status Line — HTTP ๋ฒ„์ „, ์ƒํƒœ ์ฝ”๋“œ, ๋ฉ”์‹œ์ง€
  • Header — ์„œ๋ฒ„ ์ •๋ณด, ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋“ฑ
  • Body — ์‹ค์ œ ๋ฐ์ดํ„ฐ (HTML, JSON ๋“ฑ)

---

โป ์ฃผ์š” ์ƒํƒœ ์ฝ”๋“œ(Status Code)

์ฝ”๋“œ ์˜๋ฏธ ์„ค๋ช…
200 OK ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋จ
201 Created ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋จ
400 Bad Request ์š”์ฒญ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜
401 Unauthorized ์ธ์ฆ ํ•„์š”
403 Forbidden ์ ‘๊ทผ ๊ถŒํ•œ ์—†์Œ
404 Not Found ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค ์—†์Œ
500 Internal Server Error ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜
503 Service Unavailable ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜/์ ๊ฒ€ ์ค‘

---

โผ HTTP vs HTTPS (๋ณด์•ˆ ๊ณ„์ธต)

๐Ÿ”’ HTTPS๋ž€?

HTTP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ‰๋ฌธ์œผ๋กœ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ˜๋ฉด, HTTPS๋Š” SSL/TLS ์•”ํ˜ธํ™” ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•œ ๋ฒ„์ „์ด๋‹ค.

์ฆ‰, HTTP + SSL/TLS = HTTPS

๊ตฌ๋ถ„ HTTP HTTPS
๋ณด์•ˆ์„ฑ ์•”ํ˜ธํ™” ์—†์Œ SSL/TLS๋กœ ์•”ํ˜ธํ™”
ํฌํŠธ ๋ฒˆํ˜ธ 80 443
์†๋„ ๋น ๋ฆ„ ์•ฝ๊ฐ„ ๋А๋ฆผ(์•”ํ˜ธํ™” ์—ฐ์‚ฐ)
๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ์ทจ์•ฝ ์•ˆ์ „ (์•”ํ˜ธํ™” + ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ)
์‚ฌ์šฉ ์˜ˆ์‹œ ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๋กœ๊ทธ์ธ, ๊ฒฐ์ œ, API ์„œ๋ฒ„ ๋“ฑ

HTTPS์˜ ํ•ต์‹ฌ 3์š”์†Œ

  • ์•”ํ˜ธํ™” (Encryption) — ์ œ3์ž๊ฐ€ ๋‚ด์šฉ์„ ์ฝ์ง€ ๋ชปํ•˜๋„๋ก ๋ณดํ˜ธ
  • ์ธ์ฆ (Authentication) — ์„œ๋ฒ„์˜ ์‹ ์›์„ ์ฆ๋ช… (CA ์ธ์ฆ์„œ)
  • ๋ฌด๊ฒฐ์„ฑ (Integrity) — ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€์กฐ๋˜์ง€ ์•Š์•˜์Œ์„ ๋ณด์žฅ

SSL ์ธ์ฆ์„œ

์„œ๋ฒ„๊ฐ€ ์ž์‹ ์ด ์ง„์งœ์ž„์„ ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด CA(Certificate Authority) ๊ธฐ๊ด€์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ธ์ฆ์„œ๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ์œ ํšจํ•  ๋•Œ๋งŒ ๐Ÿ”’ ์•„์ด์ฝ˜์ด ํ‘œ์‹œ๋œ๋‹ค.

HTTPS ํ†ต์‹  ๊ณผ์ • (ํ•ธ๋“œ์…ฐ์ดํฌ ์š”์•ฝ)

ํด๋ผ์ด์–ธํŠธ → ์„œ๋ฒ„ : ์‚ฌ์šฉํ•  ์•”ํ˜ธํ™” ๋ฐฉ์‹ ์ œ์•ˆ
์„œ๋ฒ„ → ํด๋ผ์ด์–ธํŠธ : ์ธ์ฆ์„œ ์ „๋‹ฌ
ํด๋ผ์ด์–ธํŠธ → ์„œ๋ฒ„ : ๊ณต๊ฐœํ‚ค๋กœ ๋น„๋ฐ€ํ‚ค ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ „์†ก
์„œ๋ฒ„ → ํด๋ผ์ด์–ธํŠธ : ์„ธ์…˜ํ‚ค ๊ตํ™˜ ์™„๋ฃŒ → ์ดํ›„ ํ†ต์‹  ์•”ํ˜ธํ™”

์ด ๊ณผ์ •์„ TLS Handshake๋ผ๊ณ  ํ•œ๋‹ค.

HTTPS ๋„์ž… ์ด์ 

  • ๋ฐ์ดํ„ฐ ๋„์ฒญ ๋ฐ ๋ณ€์กฐ ๋ฐฉ์ง€ (MITM ๊ณต๊ฒฉ ์ฐจ๋‹จ)
  • ๋กœ๊ทธ์ธ, ๊ฒฐ์ œ ์ •๋ณด ๋ณดํ˜ธ
  • Google SEO ๊ฐ€์ค‘์น˜ ์ƒ์Šน
  • ๋ธŒ๋ผ์šฐ์ € ๊ฒฝ๊ณ  ์ œ๊ฑฐ ("์ด ์‚ฌ์ดํŠธ๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์Œ" ๋ฐฉ์ง€)
  • API ์„œ๋ฒ„ ๋ณด์•ˆ ๊ฐ•ํ™” (JWT, OAuth ๋“ฑ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ)

---

โผ TCP Handshake & TLS Handshake (ํ•ต์‹ฌ ๋„คํŠธ์›Œํฌ ์›๋ฆฌ)

HTTP์™€ HTTPS๊ฐ€ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋ ค๋ฉด, ๊ทธ ์•„๋ž˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” TCP ํ†ต์‹ ์ด ๋จผ์ € ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณผ์ •์ด ๋ฐ”๋กœ TCP 3-Way Handshake๋‹ค.

---

๐Ÿ”น TCP 3-Way Handshake (์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ๊ณผ์ •)

TCP๋Š” ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์ „์— ์„œ๋กœ ์ค€๋น„๋๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์ˆœ์„œ์™€ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ‘์•…์ˆ˜(Handshake)’๋ฅผ ๋‚˜๋ˆˆ๋‹ค.

[1] ํด๋ผ์ด์–ธํŠธ → ์„œ๋ฒ„ : SYN
[2] ์„œ๋ฒ„ → ํด๋ผ์ด์–ธํŠธ : SYN + ACK
[3] ํด๋ผ์ด์–ธํŠธ → ์„œ๋ฒ„ : ACK
๋‹จ๊ณ„ ๋™์ž‘ ์„ค๋ช…
โ‘  SYN ์—ฐ๊ฒฐ ์š”์ฒญ ํด๋ผ์ด์–ธํŠธ๊ฐ€ “์—ฐ๊ฒฐํ•˜๊ณ  ์‹ถ๋‹ค”๋Š” ์‹ ํ˜ธ๋ฅผ ๋ณด๋ƒ„ (SYN=1, seq=x)
โ‘ก SYN+ACK ์š”์ฒญ ์ˆ˜๋ฝ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๋ฉฐ ์‘๋‹ต (SYN=1, ACK=1, seq=y, ack=x+1)
โ‘ข ACK ์—ฐ๊ฒฐ ํ™•์ธ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ํ™•์ธํ•˜๊ณ  ์ตœ์ข… ์Šน์ธ (ACK=1, seq=x+1, ack=y+1)

์ด ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์„œ๋กœ์˜ ์กด์žฌ๋ฅผ ํ™•์ธํ•˜๊ณ , ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์ „ํ™˜๋œ๋‹ค.

---

๐Ÿ”น TCP 4-Way Handshake (์—ฐ๊ฒฐ ์ข…๋ฃŒ ๊ณผ์ •)

[1] ํด๋ผ์ด์–ธํŠธ → ์„œ๋ฒ„ : FIN
[2] ์„œ๋ฒ„ → ํด๋ผ์ด์–ธํŠธ : ACK
[3] ์„œ๋ฒ„ → ํด๋ผ์ด์–ธํŠธ : FIN
[4] ํด๋ผ์ด์–ธํŠธ → ์„œ๋ฒ„ : ACK

์—ฐ๊ฒฐ ์ข…๋ฃŒ ์‹œ์—๋Š” ์†ก์‹ ๊ณผ ์ˆ˜์‹ ์„ ๊ฐ๊ฐ ๋Š์–ด์•ผ ํ•˜๋ฏ€๋กœ ์ด 4๋ฒˆ์˜ ์‹ ํ˜ธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

---

TLS Handshake (HTTPS์˜ ์•”ํ˜ธํ™” ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ)

TCP๋กœ ์—ฐ๊ฒฐ๋œ ํ›„, HTTPS๋Š” TLS(Transport Layer Security)๋ฅผ ํ†ตํ•ด ์•”ํ˜ธํ™”๋œ ์„ธ์…˜์„ ์„ค์ •ํ•œ๋‹ค. ์ฆ‰, TCP๊ฐ€ “๋ฌธ์„ ์—ฌ๋Š” ๊ณผ์ •”์ด๋ผ๋ฉด, TLS๋Š” “๊ทธ ๋ฌธ์— ์ž๋ฌผ์‡ ๋ฅผ ๊ฑฐ๋Š” ๊ณผ์ •”์ด๋‹ค.

[1] ClientHello → ์ง€์› ๊ฐ€๋Šฅํ•œ ์•”ํ˜ธํ™” ๋ฐฉ์‹, TLS ๋ฒ„์ „ ์ œ์•ˆ  
[2] ServerHello → ์•”ํ˜ธํ™” ๋ฐฉ์‹ ์„ ํƒ + ์ธ์ฆ์„œ ์ „๋‹ฌ  
[3] ํด๋ผ์ด์–ธํŠธ → ์ธ์ฆ์„œ ๊ฒ€์ฆ ํ›„ ๊ณต๊ฐœํ‚ค๋กœ ์„ธ์…˜ํ‚ค ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ „์†ก  
[4] ์„œ๋ฒ„ → ์„ธ์…˜ํ‚ค ๋ณตํ˜ธํ™” ํ›„ Finished ๋ฉ”์‹œ์ง€ ์ „์†ก  
[5] ์ดํ›„๋ถ€ํ„ฐ ์„ธ์…˜ํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๋Œ€์นญํ‚ค ํ†ต์‹  ์ง„ํ–‰

์ฆ‰, TCP Handshake๋Š” ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค๊ณ , TLS Handshake๋Š” ๊ทธ ์—ฐ๊ฒฐ์— ๋ณด์•ˆ์„ ๋”ํ•œ๋‹ค.

---

Handshake ์š”์•ฝ ๋น„๊ต

์ข…๋ฅ˜ ๋‹จ๊ณ„ ๋ชฉ์  ํ•ต์‹ฌ ์‹ ํ˜ธ
TCP 3-Way Handshake 3๋‹จ๊ณ„ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ SYN / ACK
TCP 4-Way Handshake 4๋‹จ๊ณ„ ์—ฐ๊ฒฐ ์ข…๋ฃŒ FIN / ACK
TLS Handshake 5๋‹จ๊ณ„ ์ด์ƒ ๋ณด์•ˆ ์„ธ์…˜ ์ˆ˜๋ฆฝ ์ธ์ฆ์„œ / ์„ธ์…˜ํ‚ค

---

โฝ ํ•ต์‹ฌ ์š”์•ฝ

  • HTTP๋Š” TCP/IP ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ๋กœ, ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response)์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
  • Stateless ํŠน์„ฑ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ด์ „ ์ƒํƒœ๋ฅผ ๊ธฐ์–ตํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์š”์ฒญ: Method + URL + Header + Body
  • ์‘๋‹ต: Status Code + Header + Body
  • HTTPS๋Š” HTTP์— SSL/TLS ๋ณด์•ˆ ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ•œ ๋ฒ„์ „์œผ๋กœ, ์•”ํ˜ธํ™”·์ธ์ฆ·๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.
  • TCP Handshake๋Š” ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•˜๊ณ , TLS Handshake๋Š” ๊ทธ ์—ฐ๊ฒฐ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.
  • HTTP๋Š” ํฌํŠธ 80, HTTPS๋Š” ํฌํŠธ 443์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ˜„๋Œ€ ์›น์˜ ๊ธฐ๋ณธ ํ†ต์‹ ์€ ๋Œ€๋ถ€๋ถ„ HTTPS๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

---

์šฉ์–ด ์ •๋ฆฌ

์šฉ์–ด ์„ค๋ช…
HTTP ์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ
HTTPS HTTP์— SSL/TLS๋ฅผ ๋”ํ•œ ์•”ํ˜ธํ™”๋œ ํ†ต์‹  ๋ฐฉ์‹
TCP/IP ์ธํ„ฐ๋„ท ํ†ต์‹ ์˜ ๊ธฐ๋ณธ ๊ทœ์•ฝ ๊ตฌ์กฐ
SYN (Synchronize) TCP ์—ฐ๊ฒฐ ์‹œ์ž‘ ์š”์ฒญ ์‹ ํ˜ธ
ACK (Acknowledge) ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๊ณ  ์ˆ˜์‹ ์„ ํ™•์ธํ•˜๋Š” ์‹ ํ˜ธ
FIN (Finish) TCP ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์š”์ฒญ ์‹ ํ˜ธ
Stateless ์„œ๋ฒ„๊ฐ€ ์ด์ „ ์š”์ฒญ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Œ
TLS Handshake HTTPS ํ†ต์‹ ์—์„œ ๋ณด์•ˆ ์„ธ์…˜์„ ์ˆ˜๋ฆฝํ•˜๋Š” ์ ˆ์ฐจ
Header ์š”์ฒญ ๋˜๋Š” ์‘๋‹ต์˜ ๋ถ€๊ฐ€์ •๋ณด
Body ์ „์†ก๋˜๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ
Status Code ์š”์ฒญ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ˆซ์ž๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ
Method ์š”์ฒญ์˜ ์ข…๋ฅ˜(GET, POST, PUT, DELETE ๋“ฑ)
SSL/TLS ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”, ์ธ์ฆ, ๋ฌด๊ฒฐ์„ฑ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ
CA (Certificate Authority) ์„œ๋ฒ„ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๋Š” ๊ณต์ธ ๊ธฐ๊ด€

---

๋งˆ๋ฌด๋ฆฌ

TCP Handshake๋Š” "๋ฌธ์„ ์—ฌ๋Š” ๊ณผ์ •", TLS Handshake๋Š” "๊ทธ ๋ฌธ์— ์ž๋ฌผ์‡ ๋ฅผ ๊ฑฐ๋Š” ๊ณผ์ •"์ด๋‹ค.
HTTP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ์–ธ์–ด์ด๋ฉฐ, HTTPS๋Š” ๊ทธ ์–ธ์–ด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
์˜ค๋Š˜๋‚  ์›น์˜ ์‹ ๋ขฐ๋Š” ๋ฐ”๋กœ ์ด ์ž‘์€ SYN๊ณผ ACK, ๊ทธ๋ฆฌ๊ณ  TLS ์•”ํ˜ธํ™”์˜ ์•…์ˆ˜์—์„œ ์‹œ์ž‘๋œ๋‹ค.