Notice
Recent Posts
Link
Today
Total
10-06 00:17
๊ด€๋ฆฌ ๋ฉ”๋‰ด

dingdong coding

HTTP ๋ณธ๋ฌธ

๐ŸŒˆWeb & Network

HTTP

๐Ÿถ ๊ฐœ๋ฐœ๊ฐœ๋ฐœ ๐Ÿพ 2022. 3. 27. 13:48

• HTTP (HyperText Transfer Protocol) 

: HTTP๋ž€ HyperText Transfer Protocol์˜ ์•ฝ์ž๋กœ ํ•˜์ดํผํ…์ŠคํŠธ๋ฅผ ์ „์†กํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ

 

HTTP๋Š” HTML๋ฟ์ด ์•„๋‹ˆ๋ผ TEXT, IMAGE, JSON, XML ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ๊ฒฐ์„ ์—ฐ๋‹ค์Œ ์‘๋‹ต์„ ๋ฐ›์„๋•Œ ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๋Š” ์ „ํ†ต์ ์ธ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ชจ๋ธ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

 

HTTP๋Š” ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, ์ด๋Š” ์„œ๋ฒ„๊ฐ€ ๋‘ ์š”์ฒญ๊ฐ„์— ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ(์ƒํƒœ)๋„ ์œ ์ง€ํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์•ˆ์ •์ ์ธ ์ „์†ก๋ ˆ์ด์–ด๋กœ UDP์™€ ๋‹ฌ๋ฆฌ ๋ฉ”์„ธ์ง€๋ฅผ ์žƒ์ง€ ์•Š๋Š” ํ”„๋กœํ† ์ฝœ์ธ TCP/IP ๋ ˆ์ด์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

โ€ฃ ํ•˜์ดํผํ…์ŠคํŠธ (HyperText) : ํ•˜์ดํผ๋งํฌ(HyperLink)๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ฌธ์„œ๋กœ ์ ‘๊ทผ๊ฐ€๋Šฅํ•œ ํ…์ŠคํŠธ ex) HTML

• HTTP์˜ ์ง„ํ™” 

HTTP/0.9 - ์›-๋ผ์ธ ํ”„๋กœํ† ์ฝœ ์š”์ฒญ์€ ๋‹จ์ผ ๋ผ์ธ์œผ๋กœ ๊ตฌ์„ฑ, ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋กœ ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ๋Š” GET์ด ์œ ์ผ,
HTTP ํ—ค๋” X
HTTP/1.0 - ํ™•์žฅ์„ฑ ๋งŒ๋“ค๊ธฐ ๋ฒ„์ „ ์ •๋ณด๊ฐ€ ๊ฐ ์š”์ฒญ ์‚ฌ์ด๋‚ด๋กœ ์ „์†ก, ์ƒํƒœ ์ฝ”๋“œ ๋ผ์ธ์ด ์‘๋‹ต์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ๋ถ™์–ด ์ „์†ก, HTML ํŒŒ์ผ๋“ค ์™ธ์— ๋‹ค๋ฅธ ๋ฌธ์„œ๋“ค์„ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€, HTTP ํ—ค๋” O 
HTTP/1.1 - ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ HTTP์˜ ์ฒซ๋ฒˆ์งธ ํ‘œ์ค€ ๋ฒ„์ „, ๋ชจํ˜ธํ•จ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ณ  ๋งŽ์€ ๊ฐœ์„  ์‚ฌํ•ญ๋“ค์„ ๋„์ž…
HTTP/2 - ๋” ๋‚˜์€ ์„ฑ์žฅ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ ์ด์ง„ ํ”„๋กœํ† ์ฝœ, ๋ณ‘๋ ฌ ์š”์ฒญ์ด ๋™์ผํ•œ ์ปค๋„ฅ์…˜ ์ƒ์—์„œ ๋‹ค๋ฃจ์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๋‹ค์ค‘ํ™” ํ”„๋กœํ† ์ฝœ, ์„ฑ๋Šฅ ๊ฐœ์„  
HTTP3 -  UDP ๊ธฐ๋ฐ˜์˜ ํ†ต์‹  ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ํ•ธ๋“œ์„ธ์ดํฌ๋กœ ์ธํ•œ ์ง€์—ฐ, ํŒจํ‚ท ์†์‹ค์ด ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ, ํŒจํ‚ท ์†์‹ค๋กœ ์ธํ•œ ์ง€์—ฐ์œผ๋กœ๋ถ€ํ„ฐ ์ž์œ ๋กœ์›€

 

F12 → Network → Protocol

 

WebPage Protocol Check

• HTTP์˜ ํŠน์ง•

1. ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ ๊ตฌ์กฐ 

2. ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ (Stateless) 

3. ๋น„์—ฐ๊ฒฐ์„ฑ (Connectionless)

4. HTTP ๋ฉ”์„ธ์ง€ 

5. ๋‹จ์ˆœํ•จ, ํ™•์žฅ ๊ฐ€๋Šฅ

 

โ€ฃ ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ ๊ตฌ์กฐ 

- Client์— ์˜ํ•ด ์ „์†ก๋˜๋Š” ๋ฉ”์‹œ์ง€ ์š”์ฒญ(Request)

- ์„œ๋ฒ„์—์„œ ์‘๋‹ต์œผ๋กœ ์ „์†ก๋˜๋Š” ๋ฉ”์‹œ์ง€ ์‘๋‹ต(Response)

- Client์™€ Server์˜ ์—ญํ• ์ด ๋ถ„๋ช…ํ•ด์ง„๋‹ค.  (Client: UI, Server: Logic)

โ€ฃ ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ (Stateless) 

- Server๊ฐ€ Client์˜ ์ƒํƒœ๋ฅผ Server์— ๋ณด์กด(์ €์žฅ, ๊ธฐ์–ต..)ํ•˜์ง€ ์•Š๋Š”๋‹ค. 

- Server๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ 

- ํ•„์š”์— ๋”ฐ๋ผ ์™ธ๋ถ€ DB ํ˜น์€ ์บ์‹œ์—์„œ ๋ถˆ๋Ÿฌ์™€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. 

Stateless Architecture

โ€ฃ ์žฅ์  : Server๊ฐ€ Client์˜ ์„ธ์…˜๊ด€๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์˜ ํ™•์žฅ์„ฑ(scale out)์ด ๋†’์•„ ๋Œ€๋Ÿ‰์˜ ํŠธ๋ž˜ํ”ฝ ๋ฐœ์ƒ ์‹œ์—๋„ ์ˆ˜์›”ํžˆ ๋Œ€์ฒ˜๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (์„ธ์…˜๊ด€๋ฆฌ๋Š” Client ๋ชซ)

โ€ฃ ๋‹จ์  : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ์ƒ๋Œ€์ ์œผ๋กœ Stateful๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์†Œ๋ชจ๋จ  (์š”์ฒญ ์‹œ ๋งˆ๋‹ค Client๊ฐ€ ์ถ”๊ฐ€ data ์ „์†ก)

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ด์™€ ์ƒ๋ฐ˜๋˜๋Š” ๊ฐœ๋…์ธ Stateful์— ๋Œ€ํ•ด ์งš๊ณ  ๋„˜์–ด๊ฐ‘์‹œ๋‹ค.

 

์ƒํƒœ์œ ์ง€ Stateful 

Stateful Architecture

- Server๊ฐ€ Client์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜๊ณ  ์„œ๋ฒ„์— ์ €์žฅ๋œ ์ƒํƒœ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์š”์ฒญ์ฒ˜๋ฆฌ 

- Client์˜ ์„ธ์…˜์ •๋ณด๋ฅผ Server์— ๊ด€๋ฆฌ 

- ํŠธ๋ž˜ํ”ฝ or ์œ ์ €์˜ ํ™˜๊ฒฝ๋ฌธ์ œ๋กœ ์„œ๋ฒ„๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ ๊ฐ’ ์ „๋‹ฌ ๋ฌธ์ œ ๋ฐœ์ƒ 

 

Stateful vs Stateless ์ฐธ์กฐ ๋ฐ ์ถœ์ €

 

โ€ฃ ๋น„์—ฐ๊ฒฐ์„ฑ (Connectionless)

- Server ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Server์— ์š”์ฒญ์ด ์˜ค๋ฉด ์‘๋‹ต ํ›„ Client์™€ ์—ฐ๊ฒฐ ์ข…๋ฃŒ์‹œํ‚จ๋‹ค.

-  ๋น ๋ฅธ ์‘๋‹ต ๊ฐ€๋Šฅ

 

IF, ์—ฐ๊ฒฐ ์œ ์ง€ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ : Server์— ์—ฐ๊ฒฐ๋œ Client๊ฐ€ ๋งŽ์•„์ง€๋ฉด ๊ณผ๋ถ€ํ•˜ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ ๋ณด์•ˆํ•œ HTTP์˜ ํŠน์„ฑ์ด ์ด ๋ฐ”๋กœ ๋น„์—ฐ๊ฒฐ์„ฑ(Connectionless)์ž…๋‹ˆ๋‹ค.

 

โ€ฃ HTTP ๋ฉ”์„ธ์ง€ 

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ๊ตํ™˜๋˜๋Š” ๋ฐฉ์‹

 

๋ฉ”์‹œ์ง€ ํƒ€์ž…

์š”์ฒญ (request) : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•ด์„œ ์„œ๋ฒ„์˜ Action์ด ์ผ์–ด๋‚˜๊ฒŒ๋” ํ•˜๋Š” ๋ฉ”์‹œ์ง€

์‘๋‹ต (response) : ์š”์ฒญ์— ๋Œ€ํ•œ ์„œ๋ฒ„์˜ ๋‹ต๋ณ€ 

 

HTTP ๋ฉ”์‹œ์ง€ 

ASCII๋กœ ์ธ์ฝ”๋”ฉ๋œ ํ…์ŠคํŠธ ์ •๋ณด์ด๋ฉฐ ์—ฌ๋Ÿฌ ์ค„๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ๊ตฌ์กฐ๋Š” ์„œ๋กœ ๋‹ฎ์•˜์œผ๋ฉฐ, ๊ทธ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

1. ์‹œ์ž‘ ์ค„(start-line)์—๋Š” ์‹คํ–‰๋˜์–ด์•ผ ํ•  ์š”์ฒญ, ๋˜์€ ์š”์ฒญ ์ˆ˜ํ–‰์— ๋Œ€ํ•œ ์„ฑ๊ณต ๋˜๋Š” ์‹คํŒจ๊ฐ€ ๊ธฐ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ค„์€ ํ•ญ์ƒ ํ•œ ์ค„๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค.

2. ์˜ต์…˜์œผ๋กœ HTTP ํ—ค๋” ์„ธํŠธ๊ฐ€ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์„ค๋ช…, ํ˜น์€ ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์— ๋Œ€ํ•œ ์„ค๋ช…์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

3. ์š”์ฒญ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ฉ”ํƒ€ ์ •๋ณด๊ฐ€ ์ „์†ก๋˜์—ˆ์Œ์„ ์•Œ๋ฆฌ๋Š” ๋นˆ ์ค„(blank line)์ด ์‚ฝ์ž…๋ฉ๋‹ˆ๋‹ค.

4. ์š”์ฒญ๊ณผ ๊ด€๋ จ๋œ ๋‚ด์šฉ(HTML ํผ ์ฝ˜ํ…์ธ  ๋“ฑ)์ด ์˜ต์…˜์œผ๋กœ ๋“ค์–ด๊ฐ€๊ฑฐ๋‚˜, ์‘๋‹ต๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์„œ(document)๊ฐ€ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ๋ณธ๋ฌธ์˜ ์กด์žฌ ์œ ๋ฌด ๋ฐ ํฌ๊ธฐ๋Š” ์ฒซ ์ค„๊ณผ HTTP ํ—ค๋”์— ๋ช…์‹œ๋ฉ๋‹ˆ๋‹ค.

 

HTTP ๋ฉ”์‹œ์ง€์˜ ์‹œ์ž‘ ์ค„๊ณผ HTTP ํ—ค๋”๋ฅผ ๋ฌถ์–ด์„œ ์š”์ฒญ ํ—ค๋“œ(head)๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ์ด์™€ ๋ฐ˜๋Œ€๋กœ HTTP ๋ฉ”์‹œ์ง€์˜ ํŽ˜์ด๋กœ๋“œ๋Š” ๋ณธ๋ฌธ(body)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์ฐธ์กฐ ๋ฐ ์ถœ์ฒ˜

https://developer.mozilla.org/ko/docs/Web/HTTP

https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP

https://en.wikipedia.org/wiki/Client%E2%80%93server_model

https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

'๐ŸŒˆWeb & Network' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Monolithic Architecture, Micro Service Architecture  (0) 2022.06.27
RESTful API  (0) 2022.06.15
HTTP Method  (0) 2022.04.09
URL ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ (feat. URI, URN)  (0) 2022.03.19
TCP, UDP  (0) 2022.03.05
Comments