Network
Last updated
Last updated
www๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ์
HTTP๋ ๋ฌด์์ธ๊ฐ?
HTTP ์์ฒญ ๋ฉ์๋ ์ข ๋ฅ
HTTP ์๋ต ์ํ ์ฝ๋
iOS์์์ ๋ฐ์ดํฐ ์์ฒญ ๋จ๊ณ
URL Session
HTML
HPPT
URL
ํ์ดํผ ๋ฌธ์๋ฅผ ์ ์กํ๋ ๊ฒ์์ ์์๋์๋ค.
ํ์ฌ๋ ์ด๋ฏธ์ง, ์์, ์์ฑ, json ๋ฑ ๋ชจ๋ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ค.
์ธํฐ๋ท์ ๋ชจ๋ ๊ฒ์ HTTP๋ก ๊ตฌ์ฑ ๋ผ ์๋ค.
RFC ๋ฌธ์ : HTTP์ ๊ด๋ จ๋ ๋ด์ฉ์ด ๊ธฐ์ ๋ผ ์๋ค.
HTTP : Request
ํ์์ด ์๋ ํธ์ง์ง
์ฑ๋จ์์ ์ด๋ฃจ์ด์ง๋ค.
๊ฐ ์ดํ์์ HTTP ๋ฃฐ์ ๋ง์ถฐ ํธ์ง ์์ฑ โ ์ฑ์์ ํธ์ง์ง๋ฅผ ๋์ง๊ณ , iOS์ ์ ๋ฌํ๋ค.
iOS๋ ํธ์ง๋ฅผ ๋ฐ์ ๊ฐ๊ฐ ๋ค๋ฅธ Port ๋ฒํธ๋ฅผ ๋ถ์ธ๋ค.
ํธ์ง๋ฅผ ๋ณด๋ผ ๊ณณ์ ์ฃผ์๋ฅผ ๋ถ์ธ๋ค.(IP) โ ์ ๋ฌํ๋ค.
LAN : MAC ์ฃผ์๋ฅผ ์ถ๊ฐํ๋ค โ ์๋ฒ๋ก ์ ๋ฌํ๋ค.
HTTP: ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฃผ๊ณ ๋ฐ์์ง์ ๋ํ ์ฝ์(์์ฒญ: request, ์๋ต: response)
TCP : ์ฃผ๊ณ ๋ฐ์ ๋ ์ํ ํ์ธ ๋ฐ ๊ฒ์ฆ / PORT : ์ด๋ค ์ฑ๊ณผ ํต์ ํ๋์ง
ํด๋ผ์ด์ธํธ๊ฐ Request (์์ฒญ)์ ๋ณด๋ด๋ฉด, ์๋ฒ์์ Response(์๋ต)์ ์ค๋ค.
HTTP ์์ฒญ ๋ฉ์์ง
์์๋ผ์ธ : ๋ฉ์๋, ์์ฒญ ๋์, (๊ฒฝ๋ก) , HTTP ๋ฒ์ header (ํค๋ ํ๋) : ๋ฉํ ๋ฐ์ดํฐ (๋ชจ๋ ๋ถ๊ฐ ์ ๋ณด) ๊ณต๋ฐฑ๋ผ์ธ message body (๋ฉ์ธ์ง ๋ณธ๋ฌธ) : ์ค์ ์ ์กํ ๋ฐ์ดํฐ
HTTP ์๋ต ๋ฉ์ธ์ง : HTTP ๋ฒ์ , ์ํ์ฝ๋, ๋ฌธ๊ตฌ
์์๋ผ์ธ header (ํค๋ ํ๋) ๊ณต๋ฐฑ๋ผ์ธ message body (๋ฉ์ธ์ง ๋ณธ๋ฌธ) : ์ค์ ์ ์กํ ๋ฐ์ดํฐ
GET (Read)
์กฐํ (๊ฒ์ํ ๊ธ ์ฝ์ด์ค๊ธฐ)
POST (Create)
๋ฑ๋กํ๊ธฐ (๊ฒ์ํ ๊ธ ์ฐ๊ธฐ, ๋๊ธ ๋ฌ๊ธฐ, ์๋ก์ด ์ฃผ๋ฌธ ์์ฑ)
PUT (Update)
๋ฐ์ดํฐ ๋์ฒด, ์์ผ๋ฉด ์์ฑ (๊ฒ์๊ธ ์์ )
PATCH
PUT์์ ํ์ํ ๋ถ๋ถ ๋ณ๊ฒฝ (์ข์์ ๋๋ฅด๊ธฐ)
DELETE
์ญ์ (๊ฒ์๊ธ ์ญ์ ํ๊ธฐ)
2xx (success)
request ์ ์ ์ฒ๋ฆฌ ์๋ฃ
4xx (Client Error)
client error
์๋ชป๋ ์์ฒญ (์๋ฒ๊ฐ request๋ฅผ ์ดํดํ ์ ์์)
5xx (Server Error)
server error
์๋ฒ ๋ด๋ถ์ ๋ฌธ์ (์๋ฒ ๋ค์ด, ์ผ์์ ์ผ๋ก ์ฌ์ฉ ๋ถ๊ฐ)
์ฃผ์๋ฅผ ์ด์ฉํด์ URL ๊ตฌ์กฐ์ฒด๋ฅผ ๋ง๋ ๋ค.
URL Session์ ๋ง๋ ๋ค. (๋คํธ์ํน์ ํ๋ ๊ฐ์ฒด)
์ธ์ ์ ์์ ์ ๋ถ์ฌํ๋ค. (์ผ์์ ์ง ์ํ์ ์์ )
์์ ์ ์์ํ๋ค. (Resume) โ ๋น๋๊ธฐ์ ์ผ๋ก ๋์ํ๋ค.
์ดํ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉ ํ class๋ struct๋ก ๋ฐ๊ฟ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
URL ๊ตฌ์กฐ์ฒด
URL Session
dataTask
์์ (resume)
โ ๊ฒฐ๊ณผ๋ฅผ ์ป์
โ JSON/DATA ํ์ผ์ ์ฐ๋ฆฌ๊ฐ ์ฐ๋ ค๋ Class, Struct๋ก ๋ณํ์์ผ์ผํ๋ค.