์น ์ดํ๋ฆฌ์ผ์ด์ ?
1. Native-Application : ํน์ ์คํํ๊ฒฝ์ ์ข ์๋์ด ๊ฐ๋ฐ๋ ์ดํ๋ฆฌ์ผ์ด์ . ๋น ๋ฅด๊ณ ์ธํฐ๋ท์์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ค์น๋ ๊ธฐ๊ธฐ์ ๋ฆฌ์์ค์ ์ ๊ทผ์ด ์ฉ์ดํ๊ณ ์์ ํ์ง๋ง, ๋น์ฉ์ด ์ฆ๊ฐํ๋ฉฐ, ์ ๋ฐ์ดํธ๊ฐ ํ๋ค๋ค.
2. Web-Application : ์น๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ ๊ทผ์ด ๊ฐ๋ฅํ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก, ์ค์น๋ ๋ค์ด๋ก๋๊ฐ ํ์์๊ณ , ์ ๋ฐ์ดํธ๊ฐ ํธ๋ฆฌํ๋ฉฐ ๊ฐ๋ฐ์ด ๊ฐํธํ๋ค. ํ์ง๋ง ์ธํฐ๋ท์์ด ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๊ณ ์๋๊ฐ ๋๋ฆฌ๋ฉฐ, ๋ณด์์ ์ํ์ฑ์ด ์๊ณ ์ ๊ทผ์ฑ์ด ๋จ์ด์ง๋ค.
TCP/IP Protocol
ํ๋กํ ์ฝ์ ๊ณตํต๋ ๊ท์ฝ์ด๋ค. ์ด์ค์ TCP/IP๋ 4๊ณ์ธต๋ชจ๋ธ์ด ์์ผ๋ฉฐ IPํ๋กํ ์ฝ์ ๊ฒฝ์ฐ ๋น์ฐ๊ฒฐ์ฑ๊ณผ ๋น์ ๋ขฐ์ฑ์ ํ๊ณ๋ก ํจํท์ ๋ฐ์ง๋ชปํ๋ ์ํฉ์๋ ๊ทธ๋๋ก ์ ์ก์ ํ๊ธฐ๋๋ฌธ์ ์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ์ํด TCP์ ๊ฐ์ด ์ฌ์ฉ๋๋ค. TCPํ๋กํ ์ฝ์ ์ฐ๊ฒฐ ์งํฅ์ ํ๋กํ ์ฝ๋ก ์ ๋ขฐ์ฑ๊ณผ ์ ์กํ๋ ํจํท์ ์์๋ฅผ ๋ณด์ฅํ๋ค.
URL / URI
1. URI(Uniform Resource Identifier)์ ์ธํฐ๋ท์์ ๋ฆฌ์์ค "์์ ์์ฒด"๋ฅผ ์๋ณํ๋ ๊ณ ์ ํ ๋ฌธ์์ด ์ํ์ค์ด๋ค.
2. URL(Uniform Resource Locator)๋ ๋คํธ์ํฌ์์ ํตํฉ ์์์ "์์น"๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ๊ท์ฝ์ด๋ค.
ex)
naver.com > URI
https://www.naver.com > URL, URI
์ฆ ์ง๊ธ ์ดํ์ด์ง์ ์ฃผ์๋ฅผ ๊ตฌ๋ถํ์๋ฉด ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ตฌ๋ถํ ์์๋ค.
HTTP !
HTTP ์์ฒญ๋ฉ์๋
๋ฉ์๋ | ๊ธฐ๋ฅ |
GET | ํน์ ๋ฆฌ์์ค์ ํ์๋ฅผ ์์ฒญ, GET์ ์ฌ์ฉํ๋ ์์ฒญ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ธฐ๋ง ํ๋ค. |
HEAD | GET๋ฉ์๋์ ๋์ผํ ์๋ต์ ์๊ตฌํ์ง๋ง, ์๋ต๋ณธ๋ฌธ์ ํฌํจํ์ง ์๋๋ค. |
POST | ํน์ ๋ฆฌ์์ค์ ์ํฐํฐ๋ฅผ ์ ์ถํ ๋ ์ฐ์ธ๋ค. |
PUT | ๋ชฉ์ ๋ฆฌ์์ค์ ๋ชจ๋ ํ์ฌํ์๋ฅผ ์์ฒญ payload๋ก ๋ฐ๊พผ๋ค. |
DELETE | ํน์ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ๋ค. |
CONNECT | ๋ชฉ์ ๋ฆฌ์์ค๋ก ์๋ณ๋๋ ์๋ฒ๋ก์ ํฐ๋์ ๋งบ๋๋ค. |
OPTIONS | ๋ชฉ์ ๋ฆฌ์์ค์ ํต์ ์ ์ค์ ํ๋๋ฐ ์ฐ์ธ๋ค. |
TRACE | ๋ชฉ์ ๋ฆฌ์์ค์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ฉ์ธ์ง loop-backํ ์คํธ๋ฅผ ํ๋ค. |
PATH | ๋ฆฌ์์ค์ ๋ถ๋ถ๋ง์ ์์ ํ๋๋ฐ ์ฐ์ธ๋ค. |
HTTP์ ๋ฌด์ํ์ฑ์ด๋?
HTTP์ ๋ฌด์ํ์ฑ(Stateless)๋ ์ํ๋ฅผ ๊ฐ์ง์ง ์๋๋ค๋ ๋ป์ด๋ค. HTTP๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํต์ ์ ์ฃผ๊ณ ๋ฐ์๋ HHTP๊ฐ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ํ๋ฅผ ํ์ธํ์ง ์๋๊ฒ์ด๋ค. HTTP๋ ํต์ ๊ท์ฝ์ผ๋ฟ, ์ํ๋ฅผ ์ ์ฅํ์ง ์๊ณ ๋ง์ฝ ์ํ์ ์ ์ฅ์ด ํ์ํ๋ค๋ฉด ์ฟ ํค, ์ธ์ , API ๋ฑ์ผ๋ก ์ํ๋ฅผ ํ์ธํด์ผํ๋ค.
HTTP ์ํ์ฝ๋
์ํ์ฝ๋๋ ์ฒซ๋ฒ์งธ ์๋ฆฌ์ ์ซ์์ ๋ฐ๋ผ 100~ 500๋ฒ๋ ๊น์ง 5๊ฐ์ง๋ก ๋ถ๋ฅํ๋ค.
- 1XX : Informational(์ ๋ณด ์ ๊ณต)
- ์์ ์๋ต์ผ๋ก ํ์ฌ ํด๋ผ์ด์ธํธ์ ์์ฒญ๊น์ง๋ ์ฒ๋ฆฌ๋์์ผ๋ฉฐ, ๊ณ์ ์งํํ๋ผ๋ ์๋ฏธ์ด๋ค.
- 2XX : Success(์ฑ๊ณต)
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์๋ฒ์ ์ ์์ ์ผ๋ก ์ ๋ฌ๋์์ผ๋ฉฐ ์ฒ๋ฆฌ๋์๋ค๋ ์๋ฏธ์ด๋ค.
- 3XX : Redirection(๋ฆฌ๋ค์ด๋ ์
)
- ์์ ํ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ถ๊ฐ ๋์์ด ํ์ํ ๊ฒฝ์ฐ, ์๋ฒ์ ์ฃผ์ ๋๋ ์์ฒญํ URI์ ์น๋ฌธ์๊ฐ ์ด๋๋์์ผ๋ ๊ทธ ์ฃผ์๋ก ์ฌ์๋ ํ๋ผ๋ ์๋ฏธ์ด๋ค.
- 4XX : Client Error(ํด๋ผ์ด์ธํธ ์๋ฌ)
- ์๋ ํ์ด์ง๋ฅผ ์์ฒญ ํ๋ ๋ฑ์ ํด๋ผ์ด์ธํธ์ ์์ฒญ ๋ฉ์ธ์ง ๋ด์ฉ์ด ์๋ชป๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ค.
- 5XX : Server Error(์๋ฒ ์๋ฌ)
- ์๋ฒ์ ๋ฉ์ธ์ง ์ฒ๋ฆฌ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ค. ์๋ฒ์ ๋ถํ, DB์๋ฌ ๋ฑ์ ์๋ฒ์์ Exception์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ํ๋ธ๋ค.
์์ฃผ ์ฌ์ฉํ๋ ์ํ ์ฝ๋
2XX : success
์ํ์ฝ๋ | ํ ์คํธ | ํ๊ตญ์ด | ์๋ฏธ |
200 | Ok | ์ฑ๊ณต | - ์๋ฒ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์ฒญ์ ์ฒ๋ฆฌํ์์์ ์๋ฏธ |
201 | Created | ์์ฑ | - ์์ฒญ์ด ์ฒ๋ฆฌ๋์ด ์๋ก์ด ๋ฆฌ์์ค๊ฐ ์์ฑ๋จ. - ์๋ตํค๋ Location์ ์๋ก์ด ๋ฆฌ์์ค์ ์ ๋ URI๋ฅผ ๊ธฐ๋กํ๋ค. |
202 | Accepted | ํ์ฉ | - ์์ฒญ์ ์ ์ํ์์ง๋ง ์ฒ๋ฆฌ๋์ง ์์ - ์๋ตํค๋์ Location์ ์ฐธ๊ณ ํ์ฌ ํด๋ผ์ด์ธํธ๋ ๋ค์ ์์ฒญ์ ๋ณด๋ธ๋ค. |
3XX : Redirection
์ํ์ฝ๋ | ํ ์คํธ | ํ๊ตญ์ด | ์๋ฏธ |
301 | Moved Permanently | ์๊ตฌ ์ด๋ | - ์ง์ ํ ๋ฆฌ์์ค๊ฐ ๋ค๋ฅธ URI๋ก ์ด๋ํ์๋ค. - ์ด๋ํ ๊ณณ์ ์๋ก์ด URI๋ ์๋ตํค๋ Rocation์ ๊ธฐ๋กํ๋ค. |
303 | See Other | ๋ค๋ฅธ ์์น ๋ณด๊ธฐ | - ๋ค๋ฅธ์์น๋ก ์์ฒญํ์ธ์. - ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์๋ต ํค๋ Location์ ํ์๋ URI์์ Get์ผ๋ก ์ทจ๋ํ ์ ์๋ค. ๋ธ๋ผ์ฐ์ ์ ํผ ์์ฒญ์ Post๋ก ์ฒ๋ฆฌํ๊ณ ๊ทธ๊ฒฐ๊ณผ ํ๋ฉด์ ๋ฆฌ๋ค์ด๋ ํธ ์ํฌ๋ ์์ฃผ ์ฌ์ฉํ๋ ์๋ต์ฝ๋์ด๋ค. |
307 | Temporary Redirect | ์์ ๋ฆฌ๋ค์ด๋ ์ | - ์์๋ก ๋ฆฌ๋ค์ด๋ ์
์์ฒญ์ด ํ์ํจ. - ์์ฒญํ URI๊ฐ ์์ผ๋ฏ๋ก ํด๋ผ์ด์ธํธ ๋ฉ์๋๋ฅผ ๊ทธ๋๋ก ์ ์งํ์ฑ ์๋ตํค๋ Location์ ํ์๋ ๋ค๋ฅธ URI๋ก ์์ฒญ์ ์ฌ์ก์ ํด์ผํ๋ค. ํด๋ผ์ด์ธํธ๋ ๋ค์ ์์ฒญ์ ์๋ ์์น๋ฅผ ๊ณ์ ์ฌ์ฉํด์ผํ๋ค. |
4XX : Client Error
์ํ์ฝ๋ | ํ ์คํธ | ํ๊ตญ์ด | ์๋ฏธ |
400 | Bad Request | ์๋ชป๋ ์์ฒญ | - ์์ฒญ์ ๊ตฌ๋ฌธ์ด ์๋ชป๋จ. |
401 | Unauthorized | ๊ถํ ์์ | - ์ง์ ํ ๋ฆฌ์์ค์ ๋ํด ์์ธ์ค ๊ถํ์ด ์๋ค. - ์๋ต ํค๋์ Authenticate์ ํ์ํ ์ธ์ฆ๋ฐฉ์์ ์ง์ ํ๋ค. |
403 | Forbidden | ๊ธ์ง๋จ | - ์ง์ ํ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๊ฐ ๊ธ์ง ๋์๋ค. - 401์ธ์ฆ ์ฒ๋ฆฌ ์ด์ธ์ ์ฌ์ ๋ก ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ์ด ๊ธ์ง๋์์์ ์๋ฏธํ๋ค. |
404 | Not Found | ์ฐพ์์ ์์ | - ์ง์ ํ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์์๋ค. - ๋ฆฌ์์ค์ ์กด์ฌ ์์ฒด๋ฅผ ์จ๊ธฐ๊ณ ์ถ์๊ฒฝ์ฐ ์ฌ์ฉ๊ฐ๋ฅ |
5XX : Server Error
์ํ์ฝ๋ | ํ ์คํธ | ํ๊ตญ์ด | ์๋ฏธ |
500 | Internal Server | ๋ด๋ถ ์๋ฒ ์ค๋ฅ | - ์๋ฒ์ ์๋ฌ๊ฐ ๋ฐ์ํจ. |
501 | Not Implemented | ๊ตฌํ๋์ง ์์ | - ์์ฒญํ URI์ ๋ฉ์๋๋ฅผ ์๋ฒ๊ฐ ๊ตฌํํ๊ณ ์์ง ์์ |
502 | Bad Gateway | ๋ถ๋ ๊ฒ์ดํธ์จ์ด | - ๊ฒ์ดํธ์จ์ด ๋๋ ํ๋ก์ ์ญํ ์ ํ๋ ์๋ฒ๊ฐ ๋ท๋จ์ ์๋ฒ๋ก ๋ถํฐ ์๋ชป๋ ์๋ต์ ๋ฐ์. |
CORS
Cross-Origin Resource Sharing ์ ์ถ์ฒ๊ฐ ๋ค๋ฅธ ์์์ ๊ณต์ ํ๋ค๋ ๋ป์ผ๋ก, ์ ๊ทธ๋ฆผ์์ Protocol + Host + Port ์ด๋ ๊ฒ 3๊ฐ์ง๊ฐ ๊ฐ์ผ๋ฉด ๋์ผ ์ถ์ฒ(Origin) ๋ผ๊ณ ํ๋ค.
more...