01.Basic
HTTP Basic
์ธํฐ๋ท ๋คํธ์ํฌ
message๋ฅผ ์๋ฒ๋ฅผ ํตํด ์ด๋ป๊ฒ ์ ๋ฌ๋ ๊น?
IP(Internet Protocol)
IP(Internet Protocol)
์ง์ ํ IP Address์ ๋ฐ์ดํฐ ์ ๋ฌ
Packet์ด๋ผ๋ ํต์ ๋จ์๋ก ๋ฐ์ดํฐ ์ ๋ฌ
IP Packet ์ ๋ณด : ์ถ๋ฐ์ง IP, ๋ชฉ์ ์ง IP, ๊ธฐํ.. ์ ์ก ๋ฐ์ดํฐ
์ธํฐ๋ท ๋ ธ๋๋ค๋ผ๋ฆฌ ๋ชฉ์ ์ง IP๋ฅผ ํฅํด Packet์ ์ ๋ฌ
Internet Protocol์ ํ๊ณ
๋น์ฐ๊ฒฐ์ฑ (๋์์ด ์๊ฑฐ๋ ์๋น์ค ๋ถ๋ฅ ์ํ์ผ ๊ฒฝ์ฐ)
๋น์ ๋ขฐ์ฑ (ํจํท์ด ์ฌ๋ผ์ง๊ฑฐ๋, ์์๊ฐ ์ง์ผ์ง์ง ์์ ๊ฒฝ์ฐ)
ํ๋ก๊ทธ๋จ ๊ตฌ๋ถ
TCP, UDP
TCP, UDP
์ฐธ๊ณ
> ํ๋กํ ์ฝ ๊ณ์ธต ์์์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต (๋ธ๋ผ์ฐ์ , ์ฑํ , ๊ฒ์ ๋ฑ)
HTTP, FTP
OS
์ ์ก ๊ณ์ธต : TCP, UDP
์ธํฐ๋ท ๊ณ์ธต : IP
๋คํธ์ํฌ ์ธํฐํ์ด์ค
LAN ๋๋ผ์ด๋ฒ/์ฅ๋น
TCP (Transmission Control Protocol)
ํน์ง์ฐ๊ฒฐ์งํฅ (3 Way Handshake)
๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ
์์ ๋ณด์ฅ ๋ฑ..
IP์ ํ๊ณ๋ฅผ ํด๊ฒฐ. ๋๋ถ๋ถ์ด ์ฌ์ฉ
UDP (User Datagram Protocol)
๊ธฐ๋ฅ์ด ๊ฑฐ์ ์์ง๋ง, ์ถ๊ฐ ์ค์ ๊ฐ๋ฅ
๋จ์ํ๊ณ ๋น ๋ฆ
IP์ ๋์ผํ์ง๋ง PORT, ์ฒดํฌ์ฌ ์ ๋ ์ถ๊ฐ
PORT
PORT
TCP/IP ํจํท
IP๋ก ๋ชฉ์ ์ง ์๋ฒ ์ฐพ๊ธฐ
PORT๋ก ๊ฐ์ ์๋ฒ ์์์ ํ๋ก์ธ์ค ๊ตฌ๋ถ
ํด๋ผ์ด์ธํธ IP : 100.100.1:1010
์๋ฒ IP : 200.200.200:80
0 ~ 65535 ๊น์ง ํ ๋น ๊ฐ๋ฅ
0 ~ 1023 ์ ์ ์๋ ค์ง ํฌํธ์ด๋ฏ๋ก, ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ถ์ฒ
FTP : 20, 21
TELNET : 23
HTTP : 80
HTTPS : 443
DNS
DNS
Domain Name System
๋๋ฉ์ธ๋ช
(์ด๋ฆ)๊ณผIP
(์ ํ๋ฒํธ)๊ฐ ์ ์ฅ๋ ์ ํ๋ฒํธ๋ถ
๐
URI๊ณผ ์น ๋ธ๋ผ์ฐ์ ์์ฒญ ํ๋ฆ
URI
(Uniform Resource Identifier)
URI
(Uniform Resource Identifier)์์์ ์๋ณํ๋ ๋ฐฉ๋ฒ
URI๋
UResourceLocator : ๋ฆฌ์์ค๊ฐ ์๋ ์์น๋ฅผ ์ง์
foo://example.com:8042/over/there?name=ferret#nose
UResourceName : ๋ฆฌ์์ค์ ์ด๋ฆ์ ๋ถ์ฌ
urn:example:animal:ferret:nose
๋๋ ๋ ๋ค ์ถ๊ฐ๋ก ๋ถ๋ฅ๋ ์ ์์.
URL ๋ฌธ๋ฒ
https://www.google.com:433/search?q=hello&hl=ko
https
: ํ๋กํ ์ฝ (http, https, ftp ๋ฑ)www.google.com
: ํธ์คํธ๋ช433
: ํฌํธ ๋ฒํธ (http๋ 80, https๋ 443)/search
: Path (๋ฆฌ์์ค ๊ฒฝ๋ก)q=hello&hl=ko
: query parameter or query string ์ผ๋ก ๋ถ๋ฆผ
์น ๋ธ๋ผ์ฐ์ ์์ฒญ ํ๋ฆ
https://www.google.com:433/search?q=hello&hl=ko
www.google.com : DNS ์กฐํ -> 200.200.200.2
443 : HTTPS PORT ์๋ต
์น ๋ธ๋ผ์ฐ์ ๊ฐ HTTP ์์ฒญ ๋ฉ์์ง ์์ฑ
GET /search?q=hello&hl=ko HTTP/1.1
Host: www.google.com
socket ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด TCP/IP์ ์ ๋ฌ
TCP/IP ํจํท ์์ฑ, HTTP ๋ฉ์์ง ํฌํจ
..
์๋ต ๋ฉ์์ง
HTTP ๊ธฐ๋ณธ
HTTP
HTTP
HyperText Transfer Protocol
HTTP์ ๊ฑฐ์ ๋ชจ๋ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์์
HTML, TEXT, IMAGE, ์์ฑ, ์์, ํ์ผ, JSON, XML ...
ํน์ง
ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
Stateless, connectionless
HTTP ๋ฉ์์ง๋ก ํต์
๋จ์, ํ์ฅ์ฑ
ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
Request-Response ๊ตฌ์กฐ
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ request ํ response ๋๊ธฐ
์๋ฒ๊ฐ request์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด์ ์๋ต
Stateful, Stateless
Stateful, Stateless
Stateful
Stateful
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์
์ด์ ์ํ๋ฅผ ๋ณด์กด
ex) ์ ์์ด ๋ฐ๋๋ฉด ๊ณ ๊ฐ์ ์ํ๋ฅผ ์ ์ ์์ (๋ก๊ทธ์ธ)
ํญ์ ๊ฐ์ ์๋ฒ์ ์ฐ๊ฒฐ
์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ฟ ํค์ ์๋ฒ ์ธ์ ๋ค์ ์ฌ์ฉํด ์ํ ์ ์ง
์ํ ์ ์ง๋ ์ต์ํ๋ง ์ฌ์ฉ
Stateless
Stateless
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์
์ด์ ์ํ๋ฅผ ๋ณด์กด X
ex) ์ ์์ด ๋ฐ๋์ด๋ ๊ณ ๊ฐ์ ์ํ๋ฅผ ์ ์ ์์ (์๊ฐ ํ์ด์ง)
์ค์ผ์ผ ์์(์ํ ํ์ฅ)์ ์ ๋ฆฌ
์ฅ: ์๋ฒ ํ์ฅ์ฑ์ด ๋์, ์๋ต ์๋ฒ๋ฅผ ์ฝ๊ฒ ๋ฐ๊ฟ ์ ์์
๋จ: ํด๋ผ์ด์ธํธ๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ง์์ ์ผ๋ก ์ ์ก
๋น ์ฐ๊ฒฐ์ฑ(connectionless)
Connectionless
์๋ฒ ์ฐ๊ฒฐ์ ์ ์งํ๋ ๋ชจ๋ธ
์๋ฒ ์์ ์๋ชจ
์๋ฒ ์ฐ๊ฒฐ์ ์ ์งํ์ง ์๋ ๋ชจ๋ธ
์ต์ํ์ ์์ ์ ์ง
HTTP๋ ๊ธฐ๋ณธ์ด ์ฐ๊ฒฐ์ ์ ์งํ์ง ์๋ ๋ชจ๋ธ
์๋ฒ์ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ
HTTP ์ง์ ์ฐ๊ฒฐ(Persistent Connections)๋ก TCP/IP์ 3 way handshake ์๊ฐ ์์ ํด๊ฒฐ
HTTP/2, HTTP/3 ์์ ์ต์ ํ
HTTP ๋ฉ์์ง
HTTP ๋ฉ์์ง ๊ตฌ์กฐ
์์ ๋ผ์ธ (start-line)
ํค๋ (header)
๊ณต๋ฐฑ ๋ผ์ธ (empty line, CRLF)
message body
Start-Line
request-line (
GET
/search?q=hello&hl=ko
HTTP/1.1
)HTTP ๋ฉ์๋ -GET, POST, PUT, DELETE
์์ฒญ ๋์ (absolute-path[?query])
HTTP Version
status-line
HTTP ๋ฒ์
HTTP ์ํ ์ฝ๋
200, 400, 500
์ด์ ๋ฌธ๊ตฌ
HTTP Header
HTTP ์ ์ก์ ํ์ํ ๋ชจ๋ ๋ถ๊ฐ์ ๋ณด
message body๋ฅผ ์ ์ธํ๊ณ ํ์ํ ๋ชจ๋ ๋ฉํ ์ ๋ณด
Message Body
์ค์ ์ ์กํ ๋ฐ์ดํฐ
HTML ๋ฌธ์, ์ด๋ฏธ์ง, ์์, JSON ๋ฑ๋ฑ (Byte ํํ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฐ์ดํฐ)
Last updated