Jieunny์ ๋ธ๋ก๊ทธ
S3) Unit 6. [๋คํธ์ํฌ] HTTP & HTTPS ๋ณธ๋ฌธ
๐ฃ HTTP
โ๏ธ HTTP/1.1, HTTP/2 ๋ TCP ๊ธฐ๋ฐ์ด๋ฉฐ HTTP/3์ UDP ๊ธฐ๋ฐ ํ๋กํ ์ฝ์ด๋ค.
๐ฃ HTTP์ ํน์ง
1๏ธโฃ ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
โฐ Request Response ๊ตฌ์กฐ
โฐ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์์ ์์ฒญ์ ๋ณด๋ด๊ณ , ์๋ต์ ๋๊ธฐ
โฐ ์๋ฒ๊ฐ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด ์๋ต
2๏ธโฃ ๋ฌด์ํ ํ๋กํ ์ฝ(Stateless), ๋น์ฐ๊ฒฐ์ฑ(Connectionless)
โฐ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ๋ณด์กดํ์ง ์๋๋ค.
โฐ ์ฅ์ : ์๋ฒ ํ์ฅ์ฑ์ด ๋๋ค.
โฐ ๋จ์ : ํด๋ผ์ด์ธํธ๊ฐ ์ถ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
โ Stateful vs Stateless
Stateful | Stateless |
ํญ์ ๊ฐ์ ์๋ฒ๊ฐ ์ ์ง๋์ด์ผ ํ๋ค. | ์๋ฌด ์๋ฒ๋ ํธ์ถํด๋ ๋๋ค. |
์๋ฒ์ ์ฅ์ ๊ฐ ์๊ธด๋ค๋ฉด ์ ์ง๋๋ ์ํ ์ ๋ณด๊ฐ ๋ค ๋ ์๊ฐ ๋ฒ๋ฆฌ๋ฏ๋ก ์ฒ์๋ถํฐ ์๋ฒ์ ์์ฒญํด์ผ ํ๋ค. | ์๋ฒ์ ์ฅ์ ๊ฐ ์๊ธฐ๋๋ผ๋ ๋ค๋ฅธ ์๋ฒ์์ ์๋ต์ ์ ๋ฌํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋ค์ ์์ฒญํ ํ์๊ฐ ์๋ค. |
์ค์ผ์ผ ์์ : ๋ฌดํํ ์๋ฒ ์ฆ์ค์ด ๊ฐ๋ฅํ๋ค. | |
๋ก๊ทธ์ธ์ด ํ์ํ ์๋น์ค | ๋ก๊ทธ์ธ์ด ํ์์๋ ๋จ์ํ ์๋น์ค ์๊ฐ ํ๋ฉด |
TCP/IP (ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ด์ง ์๋๋ผ๋ ๊ณ์ ์ฐ๊ฒฐ์ ์ ์งํ๋ค) | HTTP (์ค์ ๋ก ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ ๋๋ง ์ฐ๊ฒฐ์ ์ ์งํ๊ณ ์๋ต์ ์ฃผ๊ณ ๋๋ฉด TCP/IP ์ฐ๊ฒฐ์ ๋๋๋ค. |
โฐ HTTP๋ ๊ธฐ๋ณธ์ด ์ฐ๊ฒฐ์ ์ ์งํ์ง ์๋ ๋ชจ๋ธ๋ก, ํธ๋ํฝ์ด ๋ง์ง ์๊ณ ๋น ๋ฅธ ์๋ต์ ์ ๊ณตํ ์ ์๋ ๊ฒฝ์ฐ ์ด ํน์ง์ ํจ์จ์ ์ผ๋ก ์๋ํ๋ค.
โฐ ํ์ง๋ง ํธ๋ํฝ์ด ๋ง๊ณ , ํฐ ๊ท๋ชจ์ ์๋น์ค๋ฅผ ์ด์ํ ๋์๋ ํ๊ณ๊ฐ ์์ผ๋ฏ๋ก ์ง๊ธ์ HTTP ์ง์ ์ฐ๊ฒฐ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
โฐ HTTP ์ง์ ์ฐ๊ฒฐ์์๋ ์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง๊ณ ๋ ๋ค ๊ฐ๊ฐ์ ์์๋ค์ ์์ฒญํ๊ณ ๋ชจ๋ ์์์ ๋ํ ์๋ต์ด ๋์์จ ํ์ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ค.
3๏ธโฃ HTTP ๋ฉ์ธ์ง
4๏ธโฃ ๋จ์ํจ, ํ์ฅ ๊ฐ๋ฅ
๐ฃ HTTP ํค๋
โ๏ธ HTTP ํค๋๋ HTTP ์ ์ก์ ํ์ํ ๋ชจ๋ ๋ถ๊ฐ์ ๋ณด๋ฅผ ๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
1๏ธโฃ ํํ ํค๋ : ํํ ๋ฐ์ดํฐ๋ฅผ ํด์ํ ์ ์๋ ์ ๋ณด๋ฅผ ์ ๊ณต
โ๏ธ HTTP ๋ฉ์์ง๋ ํค๋์ ๋ฐ๋๋ก ๊ตฌ๋ถํ ์ ์์ผ๋ฉฐ, ๋ฐ๋์์ ๋ฐ์ดํฐ ๋ฉ์์ง ๋ณธ๋ฌธ์ ํตํด์ ํํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ค.
โฐ ๋ฐ์ดํฐ๋ฅผ ์ค์ด๋๋ฅด๋ ๋ถ๋ถ์ Payload ๋ผ๊ณ ํ๋ค.
โฐ ํํ : ์์ฒญ์ด๋ ์๋ต์์ ์ ๋ฌํ ์ค์ ๋ฐ์ดํฐ
โฐ ํํ ํค๋๋ ์์ฒญ, ์๋ต ๋ ๋ค ์ฌ์ฉํ๋ค.
2๏ธโฃ ์์ฒญ(Request)์์ ์ฌ์ฉ๋๋ ํค๋
โ๏ธ From : ์ ์ ์์ด์ ํธ์ ์ด๋ฉ์ผ ์ ๋ณด
โ๏ธ Referer : ์ด์ ์น ํ์ด์ง ์ฃผ์
โ๏ธ User-Agent : ์ ์ ์์ด์ ํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด
โ๏ธ Host : ์์ฒญํ ํธ์คํธ ์ ๋ณด(๋๋ฉ์ธ)
โ๏ธ Origin : ์๋ฒ๋ก POST ์์ฒญ์ ๋ณด๋ผ ๋, ์์ฒญ์ ์์ํ ์ฃผ์๋ฅผ ๋ํ๋ธ๋ค.
โ๏ธ Authorization : ์ธ์ฆ ํ ํฐ(ex. JWT)์ ์๋ฒ๋ก ๋ณด๋ผ ๋ ์ฌ์ฉํ๋ ํค๋
3๏ธโฃ ์๋ต(Response)์์ ์ฌ์ฉ๋๋ ํค๋
โ๏ธ Server : ์์ฒญ์ ์ฒ๋ฆฌํ๋ ORIGIN ์๋ฒ์ ์ํํธ์จ์ด ์ ๋ณด
โ๏ธ Date : ๋ฉ์์ง๊ฐ ๋ฐ์ํ ๋ ์ง์ ์๊ฐ
โ๏ธ Location : ํ์ด์ง ๋ฆฌ๋๋ ์
โ๏ธ Allow : ํ์ฉ ๊ฐ๋ฅํ HTTP ๋ฉ์๋
โ๏ธ Retry-After : ์ ์ ์์ด์ ํธ๊ฐ ๋ค์ ์์ฒญ์ ํ๊ธฐ๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ ์๊ฐ
4๏ธโฃ ์ฝํ ์ธ ํ์ ํค๋
โ๏ธ Accept : ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ๋ฏธ๋์ด ํ์ ์ ๋ฌ
โ๏ธ Accept-Charset : ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ๋ฌธ์ ์ธ์ฝ๋ฉ
โ๏ธ Accept-Encoding : ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ์์ถ ์ธ์ฝ๋ฉ
โ๏ธ Accept-Language : ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ์์ฐ ์ธ์ด
โฐ ํ์ ํค๋๋ ์์ฒญ ์์๋ง ์ฌ์ฉํ๋ค.
๐ฃ HTTPS
โ๏ธ HTTP Secure : ๊ธฐ์กด์ HTTP ํ๋กํ ์ฝ์ ๋ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํ๋ค.
โฐ HTTP์ ๋ฌ๋ฆฌ ์์ฒญ๊ณผ ์๋ต์ผ๋ก ์ค๊ฐ๋ ๋ด์ฉ์ ์ํธํํ๋ค.
โฐ HTTP ์์ฒญ ๋ฐ ์๋ต์ ์ 3์๊ฐ ํ์ทจํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ๋ณผ ์ ์๋ค.
๐ฃ ์ํธํ ๋ฐฉ์
1๏ธโฃ ๋์นญ ํค ์ํธํ ๋ฐฉ์
โ๏ธ ํ๋์ ํค๋ง ์ฌ์ฉํ๋ฉฐ, ์ํธํํ ๋ ์ฌ์ฉํ ํค๋ก๋ง ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ๋ค.
โฐ ์ฐ์ฐ์๋๊ฐ ๋น ๋ฅด์ง๋ง ํค๋ฅผ ๊ด๋ฆฌํ๋๋ฐ ์ ๊ฒฝ์ ๋ง์ด ์จ์ผ ํ๋ค.
2๏ธโฃ ๊ณต๊ฐ ํค(๋น๋์นญ ํค) ์ํธํ ๋ฐฉ์
โ๏ธ ๋ ๊ฐ์ ํค๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ํธํํ ๋ ์ฌ์ฉํ ํค์ ๋ค๋ฅธ ํค๋ก๋ง ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ๋ค.
โฐ ๊ฐ๊ฐ์ ๊ณต๊ฐ ํค, ๋น๋ฐ ํค๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ๊ณต๊ฐ ํค๋ก ์ํธํํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ฉด ๋น๋ฐ ํค๋ฅผ ๊ฐ์ง ์ฌ๋๋ง ๊ทธ ๋ด์ฉ์ ๋ณตํธํํ ์ ์๋ค.
โฐ ๊ณต๊ฐ ํค๋ ๋๊ตฌ๋ ์ ๊ทผํ ์ ์์ง๋ง ๋น๋ฐ ํค๋ ์๋ฒ๊ฐ ํดํน๋นํ์ง ์๋ ์ด์ ํ์ทจ๋์ง ์๋๋ค.
โฐ ๋ณด์์ฑ์ด ๋ ์ข์ง๋ง, ๋ณต์กํ ์ฐ์ฐ์ด ํ์ํด์ ๋ ๋ง์ ์๊ฐ์ ์๋ชจํ๋ค.
๐ฃ SSL/TLS ํ๋กํ ์ฝ
โ๏ธ HTTPS๋ HTTP ํต์ ์ ํ๋ ์์ผ ๋ถ๋ถ์์ SSL ํน์ TLS๋ผ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์๋ฒ ์ธ์ฆ๊ณผ ๋ฐ์ดํฐ ์ํธํ๋ฅผ ์งํํ๋ค.
โฐ SSL์ด ํ์คํ๋๋ฉฐ ๋ฐ๋ ์ด๋ฆ์ด TLS์ด๋ฉฐ, ๊ฐ์ ํ๋กํ ์ฝ์ด๋ผ๊ณ ๋ด๋ ๋๋ค.
โฐ CA๋ฅผ ํตํ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ฉฐ ๋์นญ ํค, ๊ณต๊ฐ ํค ์ํธํ ๋ฐฉ์์ ๋ชจ๋ ์ฌ์ฉํ๋ค.
โ๏ธ ์ธ์ฆ์์ CA(Certificate Authority)
โฐ HTTPS๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์๋ต๊ณผ ํจ๊ป ์ ๋ฌ๋ ์ธ์ฆ์๋ฅผ ํ์ธํ ์ ์๋ค.
โฐ ์ธ์ฆ์๋ ์๋ฒ์ ์ ์์ ๋ณด์ฆํด์ฃผ๋ฉฐ, ์ด๋ฅผ ๋ฐ๊ธํด์ฃผ๋ ๊ณต์ธ๋ ๊ธฐ๊ด๋ค์ CA๋ผ๊ณ ํ๋ค.
โฐ ์๋ฒ๋ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ๊ธฐ ์ํด์ CA๋ก ์๋ฒ์ ์ ๋ณด์ ๊ณต๊ฐ ํค๋ฅผ ์ ๋ฌํ๋ค. CA๋ ์ด๋ฅผ CA์ ๋น๋ฐ ํค๋ก ์ํธํํด์ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๋ค. ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ๋ฐ์ผ๋ฉด CA์๊ฒ ๋ฐ๊ธ๋ฐ์ ์ธ์ฆ์๋ฅผ ๋ณด๋ด์ค๋ค. ์ด๋, ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ๋ธ๋ผ์ฐ์ ๋ CA๋ค์ ๋ฆฌ์คํธ์ ๊ณต๊ฐํค๋ฅผ ๋ด์ฅํ๊ณ ์๋ค. ์ฐ์ ํด๋น ์ธ์ฆ์๊ฐ ๋ฆฌ์คํธ์ ์๋ CA๊ฐ ๋ฐ๊ธํ ์ธ์ฆ์์ธ์ง ํ์ธํ๊ณ , ๋ง๋ค๋ฉด CA์ ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํด์ ์ธ์ฆ์์ ๋ณตํธํ๋ฅผ ์๋ํ๋ค.
โฐ CA์ ๋น๋ฐ ํค๋ก ์ํธํ๋ ๋ฐ์ดํฐ(์ธ์ฆ์)๋ CA์ ๊ณต๊ฐํค๋ก๋ง ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ๋ค.
โฐ ๋ณตํธํ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์งํ๋๋ค๋ฉด, ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ ๋ณด์ ๊ณต๊ฐ ํค๋ฅผ ์ป๊ฒ ๋จ๊ณผ ๋์์ ํด๋น ์๋ฒ๊ฐ ์ ๋ขฐํ ์ ์๋ ์๋ฒ์์ ์ ์ ์๊ฒ ๋๋ค.
โฐ ๋ณตํธํ๊ฐ ์คํจํ๋ค๋ฉด, ์ด๋ ์๋ฒ๊ฐ ๋ณด๋ด์ค ์ธ์ฆ์๊ฐ ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ์์์ ํ์ธํ๊ฒ ๋๋ค.
โ๏ธ ๋์นญ ํค ์ ๋ฌ
โฐ ์ฌ์ฉ์๋ ์๋ฒ์ ์ธ์ฆ์๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ณตํธํํ์ฌ ์๋ฒ์ ๊ณต๊ฐ ํค๋ฅผ ํ๋ณดํ๋ค. ์ด ๊ณต๊ฐ ํค๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํจ๊ป ์ฌ์ฉํ๊ฒ ๋ ๋์นญ ํค๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ์ฉํ๊ฒ ๋๋ค. ๋์นญ ํค๋ ์๋๋ ๋น ๋ฅด์ง๋ง, ํ์ทจ์ ์ํ์ฑ์ด ์๋ค. ํ์ง๋ง ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋์นญ ํค๋ฅผ ๋ณด๋ผ ๋ ์๋ฒ์ ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํด์ ์ํธํํด์ ๋ณด๋ด์ค๋ค๋ฉด ํ์ทจ ์ํ์ฑ์ด ์ค์ด๋ ๋ค.
โฐ ํด๋ผ์ด์ธํธ๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ์ฃผ๊ณ ๋ฐ์ ๋์นญ ํค๋ฅผ ์์ฑํ๋ค. ์์ฑํ ๋์นญ ํค๋ฅผ ์๋ฒ์ ๊ณต๊ฐ ํค๋ก ์ํธํํ์ฌ ์ ๋ฌํ๋ค. ์๋ฒ๋ ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋น๋ฐ ํค๋ก ๋ณตํธํํ์ฌ ๋์นญ ํค๋ฅผ ํ๋ณดํ๋ค. ์ด๋ ๊ฒ ๋๋ฉด ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ ๋์ผํ ๋์นญ ํค๋ฅผ ๊ฐ๊ฒ ๋๋ค.
โฐ ์ด์ HTTPS ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ ๋ ์ด ๋์นญ ํค๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ์ ๋ฌํ๊ฒ ๋๋ค.
'CodeStates > learning contents' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
S3) Unit 7. [Backend] Hashing / Token / OAuth (0) | 2023.03.08 |
---|---|
S3) Unit 7. [Backend] Cookie / Session (0) | 2023.03.07 |
S3) Unit 6. [๋คํธ์ํฌ] TCP/IP & ๋คํธ์ํฌ ๊ณ์ธต ๋ชจ๋ธ (0) | 2023.03.06 |
S3) Unit 5. [์ฌ์ฉ์ ์นํ ์น] ์น ์ ๊ทผ์ฑ (0) | 2023.03.02 |
S3) Unit 5. [์ฌ์ฉ์ ์นํ ์น] ์น ํ์ค (0) | 2023.02.28 |