2020. 12. 31. 13:02ใ๐ Web
๋ณธ ํฌ์คํ ์ ์ฐ์ํ ํ์ ๋ค, ๊น์ํ ๋์ '๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ์น ๊ธฐ๋ณธ ์ง์' ๊ฐ์๋ฅผ ์๊ฐ ํ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
1. HTTP: Hyper Text Transfer Protocol. ์ฆ ํต์ ๊ท์ฝ์ด๋ค.
2. ์ด๋ค ํต์ ๊ท์ฝ์ด๋? HTTP ๋ฉ์์ง์ ๋ชจ๋ ๊ฒ์ ์ ์กํ ์ ์๋ค.
3. ๋ง ๊ทธ๋๋ก ๊ฑฐ์ ๋ชจ๋ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ค.
- HTML, TEXT
- IMAGE, ์์ฑ, ์์, ํ์ผ
- JSON, XML (API)
4. ์๋ฒ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋๋ ๋๋ถ๋ถ HTTP๋ฅผ ์ฌ์ฉํ๋ค. (ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์๋ ๋น์ฐํ HTTP ์ฌ์ฉ)
5. HTTP ์ญ์ฌ
6. TCP ํ๋กํ ์ฝ ์์์ ๋์: HTTP/1.1, HTTP/2
7. UDP ํ๋กํ ์ฝ ์์์ ๋์: HTTP/3
-> TCP๋ 3way handshake๋ฑ ์๋๊ฐ ๋น ๋ฅธ ๋ฉ์ปค๋์ฆ์ด ์๋๊ธฐ์, ์ฑ๋ฅ ๊ฐ์ ํ ์ ๊ทธ๋ ์ด๋ ๋ฒ์ ์ UDP์์์ ๊ตฌ๋.
8. ์๋ ์ฌ์ง์์ ๋ณด๋ฏ, google์ h2, h3 ๋ฒ์ ์ ๋ ํ๋กํ ์ฝ์ ์ฃผ๋ก ์ฌ์ฉํ๋ค. (naver๋ h1, h2 ๋ชจ๋ ์ฌ์ฉ)
9. โ๏ธHTTP ํน์งโ๏ธ
- ํด๋ผ์ด์ธํธ - ์๋ฒ ๋ถ๋ฆฌ ๊ตฌ์กฐ
- stateless(๋ฌด์ํ) ํ๋กํ ์ฝ, ๋น์ฐ๊ฒฐ์ฑ
- HTTP ๋ฉ์์ง
- ๋จ์ํจ, ํ์ฅ ๊ฐ๋ฅ
10. ํด๋ผ์ด์ธํธ - ์๋ฒ ๋ถ๋ฆฌ ๊ตฌ์กฐ
-> ํด๋ผ์ด์ธํธ๋ ์์ฒญ์ ๋ณด๋ด๊ณ , ์๋ฒ๋ ์๋ต์ ๋ณด๋ธ๋ค (request - response)
11. ์ด๋ ๊ฒ ๋ถ๋ฆฌ๋ ๊ตฌ์กฐ๊ฐ ์ค์ํ ์ด์ ๋, ๊ฐ๊ฐ(ํด๋ผ์ด์ธํธ, ์๋ฒ) ๋ ๋ฆฝ์ ์ผ๋ก ์งํํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
-> ํด๋ผ์ด์ธํธ๋ UI์ ์ฌ์ฉ์ฑ์ ์ง์คํ์ฌ ์งํ, ์๋ฒ๋ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ฐ์ดํฐ, ๋์ฉ๋ ์ฒ๋ฆฌ ์ฑ๋ฅ ๊ฐ์ ์ ์ง์คํ๋ฉฐ ์งํ
-> ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ์๋ก์๊ฒ ๋ ๋ฆฝ์ ์ด๋ฏ๋ก ์๋ก์๊ฒ ์ํฅ์ ์ฃผ์ง์์ผ๋ฉด์ ์ง๋ณดํ ์ ์๊ฒ ๋๋ค.
12. stateless vs stateful
->stateless: ๋ฌด์ํ / stateful: ์ํ์ ์ง
13. stateful(์ํ์ ์ง) ์์
- ํด๋ผ์ด์ธํธ๊ฐ 100๋ง์์ง๋ฆฌ ๋ ธํธ๋ถ 2๊ฐ๋ฅผ ์ฌ๊ฒ ๋ค๊ณ A์๋ฒ์ ์ ๋ณด๋ฅผ ๋๊ฒผ๋ค.
- stateful ํ๋กํ ์ฝ์ 100๋ง์์ง๋ฆฌ ๋ ธํธ๋ถ 2๊ฐ๋ผ๋ ์ ๋ณด๋ฅผ ์ ์งํ๊ณ ์๋ค(์ํ์ ์ง)
- ๊ทธ๋ฐ๋ฐ A์๋ฒ๊ฐ ๊ฐ์๊ธฐ ํฐ์ ธ๋ฒ๋ ธ๊ณ , ์ค๊ณ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ฅผ B์๋ฒ๋ก ๋๊ธด๋ค.
- ์ํ์ ์ง ํ๋กํ ์ฝ์์๋ ์๋ฒ๊ฐ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ๋๋ฌธ์, B์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ฌด์์ธ์ง ์ ์ ์๋ค. -> ๋ฌธ์
14. stateless(๋ฌด์ํ) ์์
- ์์ ์์์ ๋ฌ๋ฆฌ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ ๋ณด๋ฅผ ์ ํ ์ ์ฅํ์ง ์๋๋ค(๋ฌด์ํ:stateless)
- ๋์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ํต์ ํ ๋๋ง๋ค ์ ๋ณด๋ฅผ ๋๊ธด๋ค(100๋ง์์ง๋ฆฌ ๋ ธํธ๋ถ 2๊ฐ ์ด๊ฑฐ์ผ)
- ์ฒ์ ์ ๋ณด๋ฅผ ๋๊ฒจ๋ฐ์ ์๋ฒ๊ฐ ํฐ์ ธ์ ๋ค๋ฅธ ์๋ฒ์ ํต์ ์ ํ๋๋ผ๋ ๋ฌธ์ ๊ฐ ์๋ค -> ์ ๋ณด๋ ์ด์ฐจํผ ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ ๋ณด๋ด์ฃผ๊ธฐ์
15. ์ฆ, HTTP๋ stateless protocol์ ์ฌ์ฉํจ์ผ๋ก, ํด๋ผ์ด์ธํธ๊ฐ ๊ธ๊ฒฉํ ๋ชฐ๋ ค ์๋ฒ ์ฅ์ ๊ฐ ์ผ์ด๋๋ ์ํฉ์๋ ๋ค๋ฅธ ์๋ฒ๋ฅผ ์ฆ์คํ์ฌ ๋์ฒํ ์ ์๋ ๋ฅ๋ ฅ์ ์ง๋๋ค. (์๋ฌด ์๋ฒ๋ ํธ์ถํด๋ ๋๊ธฐ์)
16. ์ด๋ ๊ณง stateless ํ๋กํ ์ฝ์์๋ ๋ฌดํํ ์๋ฒ ์ฆ์ค์ด ๊ฐ๋ฅํจ์ ๋ปํ๋ค. ์ด๋ฅผ ์ค์ผ์ผ ์์์ด๋ผ ์นญํ๋ค
17. stateless์ ๊ฐ์ฅ ํฐ ๋จ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋๋ฌด ๋ง์ด ๋ณด๋ธ๋ค๋ ๊ฒ.
18. stateless์ ํ๊ณ: ๋ชจ๋ ๊ฒ์ ๋ฌด์ํ๋ก ์ค๊ณํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ , ์๋ ๊ฒฝ์ฐ๋ ์๋ค.
-> ๋ก๊ทธ์ธ ๊ฐ์ ๊ฒฝ์ฐ ์ํ ์ ์ง๋ฅผ ํด์ผ๋ง ํ๋ค.
-> ์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ฟ ํค์ ์๋ฒ ์ธ์ ๋ฑ์ ์ฌ์ฉํ์ฌ ์ํ ์ ์ง + ์ํ ์ ์ง๋ ์ต์ํ๋ง ์ฌ์ฉ
19. HTTP ๋ฉ์์ง: ๊ฑฐ์ ๋ชจ๋ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ ํ๋กํ ์ฝ์ด๋ค.
-> HTTP ๋ฉ์์ง์ ๊ตฌ์กฐ๋ ๋ค ๋ถ๋ถ์ผ๋ก ๋๋์ด ์๋ค.
- ์์๋ผ์ธ, start-line
- ํค๋, header
- ๊ณต๋ฐฑ ๋ผ์ธ, empty line(CRLF)
- ๋ฉ์์ง ๋ฐ๋, message body
20. ์์ ๋ผ์ธ
-> ์์๋ผ์ธ (start-line) = request-line / status-line ์ผ๋ก ๊ตฌ์ฑ
1) ์์ฒญ ๋ฉ์์ง์ ์์๋ผ์ธ : request-line
- HTTP ๋ฉ์๋: ์๋ฒ๊ฐ ์ํํด์ผํ ๋์์ ์ง์ ํด์ ์์ฒญํ๋ค(ex, GET, POST, PUT, DELETE ... )
- ์์ฒญ ๋์: absolute-path[?query] (์ ๋๊ฒฝ๋ก[?์ฟผ๋ฆฌ(์กฐ๊ฑด๋ฌธ)])
- HTTP version: ์ ์์์ ๊ฒฝ์ฐ HTTP 1.1 version
2) ์๋ต ๋ฉ์์ง์ ์์๋ผ์ธ : status-line
21. ํค๋
-> HTTP ์ ์ก์ ํ์ํ ๋ชจ๋ ๋ถ๊ฐ์ ๋ณด
-> ๋ฉ์์ง ๋ฐ๋ ๊ด๋ จ ๋ด์ฉ(ํฌ๊ธฐ, ์์ถฉ, ์ธ์ฆ, ์์ฒญ), ํด๋ผ์ด์ธํธ ์ ๋ณด, ์๋ฒ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ณด, ์บ์ ๊ด๋ฆฌ ์ ๋ณด ๋ฑ
22. ๋ฉ์์ง ๋ฐ๋ (HTTP message body)
-> HTTP๊ฐ ์ค์ ๋ก ์ ์กํ ๋ฐ์ดํฐ
-> HTML, image, video, JSON ๋ฑ๋ฑ byte๋ก ํํํ ์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ ์ ์ก์ด ๊ฐ๋ฅ
HTTP, ํฌ๊ฒ ์ฑ๊ณตํ๋ ํ์ค ๊ธฐ์ ์ ๋จ์ํ์ง๋ง ํ์ฅ ๊ฐ๋ฅํ ๊ธฐ์ .
'๐ Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
7. HTTP ํค๋ 1 - ์ผ๋ฐ ํค๋ (0) | 2021.01.11 |
---|---|
5. HTTP ๋ฉ์๋ ํ์ฉ (0) | 2021.01.03 |
4. HTTP ๋ฉ์๋ (0) | 2021.01.03 |
2. URI์ ์น ๋ธ๋ผ์ฐ์ ์์ฒญ ํ๋ฆ (0) | 2020.12.26 |
1. ์ธํฐ๋ท ๋คํธ์ํฌ (0) | 2020.12.26 |