์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- AndroidStudio
- ์ฝ๋์
- OpenAPI
- FACTORY
- http method
- udp
- 2024-08-20
- URN
- fontstyle
- Kotlin
- ํ๋ IT&E
- IOC
- menutab
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
- tcp
- Dialog
- Python
- Factory Method Pattern
- Android Studio
- ์ฑ์ฉํ์ ํ
- datepicker
- swagger
- url
- uri
- 2024-08-21
- ๊ธฐ์ด100์
- reflection
- ์ด๋ ธํ ์ด์
- OOP
- di
dingdong coding
HTTP ๋ณธ๋ฌธ
• 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
• HTTP์ ํน์ง
1. ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
2. ๋ฌด์ํ ํ๋กํ ์ฝ (Stateless)
3. ๋น์ฐ๊ฒฐ์ฑ (Connectionless)
4. HTTP ๋ฉ์ธ์ง
5. ๋จ์ํจ, ํ์ฅ ๊ฐ๋ฅ
โฃ ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
- Client์ ์ํด ์ ์ก๋๋ ๋ฉ์์ง ์์ฒญ(Request)
- ์๋ฒ์์ ์๋ต์ผ๋ก ์ ์ก๋๋ ๋ฉ์์ง ์๋ต(Response)
- Client์ Server์ ์ญํ ์ด ๋ถ๋ช ํด์ง๋ค. (Client: UI, Server: Logic)
โฃ ๋ฌด์ํ ํ๋กํ ์ฝ (Stateless)
- Server๊ฐ Client์ ์ํ๋ฅผ Server์ ๋ณด์กด(์ ์ฅ, ๊ธฐ์ต..)ํ์ง ์๋๋ค.
- Server๋ ์์ฒญ์ ๋ํ ์๋ต์ ๋ณด๋ด๋ ์ญํ ๋ง ์ํ
- ํ์์ ๋ฐ๋ผ ์ธ๋ถ DB ํน์ ์บ์์์ ๋ถ๋ฌ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
โฃ ์ฅ์ : Server๊ฐ Client์ ์ธ์ ๊ด๋ฆฌ๋ฅผ ํ์ง ์๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ํ์ฅ์ฑ(scale out)์ด ๋์ ๋๋์ ํธ๋ํฝ ๋ฐ์ ์์๋ ์์ํ ๋์ฒ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. (์ธ์ ๊ด๋ฆฌ๋ Client ๋ชซ)
โฃ ๋จ์ : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์๋์ ์ผ๋ก Stateful๋ณด๋ค ๋ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์๋ชจ๋จ (์์ฒญ ์ ๋ง๋ค Client๊ฐ ์ถ๊ฐ data ์ ์ก)
๊ทธ๋ ๋ค๋ฉด ์ด์ ์๋ฐ๋๋ ๊ฐ๋ ์ธ Stateful์ ๋ํด ์ง๊ณ ๋์ด๊ฐ์๋ค.
์ํ์ ์ง Stateful
- 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
'๐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 |