Gateway
Last updated
Last updated
๊ฒ์ดํธ์จ์ด
์น์ ๋ฐ์ ์ผ๋ก ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ํ๊ฐ์ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก๋ง์ผ๋ก๋ ์ฒ๋ฆฌํ ์ ์๋ค ๋ฆฌ์์ค๋ฅผ ๋ฐ๊ธฐ ์ํ ๊ฒฝ๋ก๋ฅผ ์๋ดํ๋ ์ญํ ์ ํ๋ ๊ฒ์ดํธ์จ์ด๋ฅผ ๊ณ ์ํ๋ค ๊ฒ์ดํธ์จ์ด๋ ๋ฆฌ์์ค์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฐ๊ฒฐํ๋ ์ญํ ์ ํ
ํ๋ฝ์์ ํธ๋ํฝ์ ๋ฐ๋ก ๋ณด๋ด๋ ๊ฒ๊ณผ ๊ฐ์ด, ๊ฒ์ดํธ์จ์ด์๋ http ํธ๋ํฝ์ ๋ฐ๋ก ๋ณด๋ผ ์ ์๋ค. ํ๋กํ ์ฝ์ ๋ณํํ๋ ๊ฒ์ดํธ์จ์ด์ด๋ค
Server
: ๋ชจ๋ ์น ์์ฒญ์ ์ํธํํ์ฌ ๊ฐ์ธ์ ๋ณด๋ณดํธ์ ๋ณด์์ ์ ๊ณตํ๋๊ฒ์ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ฒ์ดํธ์จ์ด๊ฐ ์๋์ผ๋ก ์ฌ์ฉ์์ ๋ชจ๋ ์ธ์
์ ์ํธํํ ๊ฒ์ด๋ค
Client
: HTTPS/HTTP ๊ฒ์ดํธ์จ์ด๋ ๋ณด์ ๊ฐ์๊ธฐ๋ก ์ ๋ช
ํ๋ค.
์ด ๊ฒ์ดํธ์จ์ด๋ ๋ณด์ HTTPS ํธ๋ํฝ์ ๋ฐ์์ ๋ณตํธํํ๊ณ , ์น์๋ฒ๋ก ๋ณด๋ผ ์ผ๋ฐ HTTP ์์ฒญ์ ๋ง๋ ๋ค.
๊ณต์ฉ ๊ฒ์ดํธ์จ์ด ์ธํฐํ์ด์ค
(CGI)
์ต์ด์ ์๋ฒํ์ฅ์ด๊ณ ์ง๊ธ๊น์ง๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ์๋ฒ ํ์ฅ์ด๋ค
CGI๊ฐ ๋ด๋ถ์์ ์ด๋ค ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์๋์ง๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ด์ง ์๋๋ค.
๋ฌด์ธ๊ฐ๋ฅผ ํ๊ณ ์๋ค๋ ๊ฒ์ ์๋ ๋ฐฉ๋ฒ์ URL์ ์๋ cgiํ
๋ฟ์ด๋ค.
ํ์ง๋ง ์ด๋ฐ ๋ถ๋ฆฌ๋๋ฌธ์ ์ฑ๋ฅ๊ด๋ จ ๋จ์ ์ด ์๋ค. ๋ชจ๋ CGI์ฉ์ด๋ง๋ค ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ๋ง๋๋ ๋ถํ๊ฐ ๊ฝค ํฌ๊ธฐ ๋๋ฌธ์ด๋ค.
CGI ํ๋กํ ์ฝ์ ๊ตฌ๋์ค์ธ HTTP ์๋ฒ์ ์ธ๋ถ ์ธํฐํ๋ฆฌํฐ๊ฐ ์ฝ๊ฒ ์ ์ํ ์ ์๊ฒ ํด์ฃผ์ง๋ง, ์๋ฒ ์์ฒด์ ๋์์ ๋ฐ๊พธ๊ณ ์ถ๊ฑฐ๋ ์๋ฒ์ ์ฒ๋ฆฌ๋ฅ๋ ฅ์ ์ต๊ณ ์น๋ก ๋์ด์ฌ๋ฆฌ์ง๋ ๋ชปํ๋ค. ๊ทธ๋์ ์๋ฒ ๊ฐ๋ฐ์๋ ์น๊ฐ๋ฐ์๋ ์์ ์ ๋ชจ๋์ HTTP์ ์ง์ ์ฐ๊ฒฐํ ์ ์๋ ๊ฐ๋ ฅํ ์ธํฐํ์ด์ค์ธ ์๋ฒ ํ์ฅ API๋ฅผ ๋ง๋ค์๋ค.
์ ๋ช ํ ์๋ฒ๋ค์ ์๋ฒ ํ์ฅ API๋ฅผ ํ๋์ฉ ๊ฐ์ง๊ณ ์๊ณ , ๊ฐ๋ฐ์๊ฐ ์๋ฒ์ ๋์์ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ค๋ฅธ ๋ฆฌ์์ค์ ๋ํ ์ฌ์ฉ์ ๋ง์ถค ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ธ ์ ์๋ API๋ฅผ ๊ฐ์ง๋ค.
์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ ๋ง์ ํ์์ ์๋น์ค๋ฅผ ์ ๊ณตํจ์ ๋ฐ๋ผ์, http๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฐ๊ฒฐํ๋ ๋๊ตฌ๋ก ํ์ฉ๋ ์ ์๋ค๋๊ฒ ํ์คํด์ก๋ค
์น ํฐ๋์ http ํ๋กํ ์ฝ์ ์ง์ํ์ง ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์์ http ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํด ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค ์น ํฐ๋์ ์ฌ์ฉํ๋ฉด http ์ปค๋ฅ์ ์ ํตํด์ http๊ฐ ์๋ ํธ๋ํฝ์ ์ ์กํ ์ ์๊ณ , ์ผ๋ฐ์ ์ธ ์ฌ์ฉ๋ฒ์ผ๋ก๋ http ์ปค๋ฅ์ ์์ http๊ฐ ์๋ ํธ๋ํฝ์ ์น๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค
์น ํฐ๋์ http์ CONNECT ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ปค๋ฅ์ ์ ๋งบ๋๋ค CONNECT ๋ฉ์๋๋ ํฐ๋ ๊ฒ์ดํธ์จ์ด๊ฐ ์์์ ๋ชฉ์ ์๋ฒ์ ํฌํธ์ TCP ์ปค๋ฅ์ ์ ๋งบ๊ณ , ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์ ์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ฌด์กฐ๊ฑด ์ ๋ฌํ๊ธฐ๋ฅผ ์์ฒญํจ
ํฐ๋์ ํตํด ์ ๋ฌ๋๋ ๋ฐ์ดํฐ๋ ๊ฒ์ดํธ์จ์ด์์ ๋ณผ ์ ์์ด์, ๊ฒ์ดํธ์จ์ด๋ ํจํท์ ์์๋ ํ๋ฆ์ ๋ํ ์ด๋ค ๊ฐ์ ๋ ๋ชปํ๋ค ๋ํ ํฐ๋์ ํ์ชฝ ๋๋จ์์ ๋ฐ์ดํฐ๋ฅผ ์๋นํ์ง ์์ผ๋ฉด ํฐ๋์ ๋ค๋ฅธ ๋๋จ์ ๋ฐ์ดํฐ ์์ฐ์๋ ํ์ ๊ฑธ๋ฆฌ๊ฒ ๋๊ณ , ๊ฒฐ๊ตญ ๊ต์ฐฉ์ํ๊ฐ ์ผ์ด๋ ์ ์๋ค. ๊ฒ์ดํธ์จ์ด๋ ์ปค๋ฅ์ ์ด ๋งบ์ด์ง๋ ๋๋ก ํค๋๋ฅผ ํฌํจํด์ ์ฝ์ด๋ค์ธ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ ์กํด์ผํ๋ค.
์น ํฐ๋์ ์๋ ๋ฐฉํ๋ฒฝ์ ํตํด์ ์ํธํ๋ SSL ํธ๋ํฝ์ ์ ๋ฌํ๋ ค๊ณ ๊ฐ๋ฐ๋์๋ค ์๋๋ ๋ง์ ํ์ฌ๊ฐ ๋ณด์์ ์ํด์ ๋ชจ๋ ํธ๋ํฝ์ด ํจํท์ ํํฐ๋งํ๋ ๋ผ์ฐํฐ์ ํ๋ฝ์๋ฅผ ์ง๋๋๋ก ํ๋๋ฐ, ssl ๊ฐ์ ํ๋กํ ์ฝ์ ๋ก์ ๋ฐฉ์์์ ํ๋ฝ์์๊ฒ ์ฒ๋ฆฌ๊ฐ์๋์ด์ ํต๊ณผ๊ฐ ์๋์๋ค ํฐ๋๋ง์ ํตํด์ ssl ํธ๋ํฝ์ http๋ง ํ์ฉํ๋ ๋ฐฉ์์ผ๋ก ํต๊ณผํ๋๋ก ๋ณ๊ฒฝ
SSL ํฐ๋๋ง์ ์ฌ์ฉํ๋ฉด, ํ๋ฝ์์ SSL์ ๊ตฌํํ ํ์๊ฐ ์๋ค. SSL์ธ์ ์ ํด๋ผ์ด์ธํธ๊ฐ ์์ฑํ ์์ฒญ๊ณผ ๋ชฉ์ ์ง(๋ณด์์ด ์ ์ฉ๋) ์น ์๋ฒ ๊ฐ์ ์์ฑ๋๋ค. ํ๋ฝ์ ์๋ฒ๋ ํธ๋์ญ์ ์ ๋ณด์์๋ ๊ด์ฌํ์ง ์๊ณ ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ํฐ๋๋งํ ๋ฟ์ด๋ค
http๋ฆด๋ ์ด๋ http๋ช ์ธ๋ฅผ ์์ ํ ์ค์ํ์ง๋ ์๋ http ํ๋ฝ์์ด๋ค. ์ปค๋ฅ์ ์ ๋งบ๊ธฐ์์ http์ ํต์ ์ ํ ๋ค์์ ๋ฐ์ดํธ๋ฅผ ๋งน๋ชฉ์ ์ผ๋ก ์ ๋ฌํ๋ค.
http๋ ๋ณต์กํด์ ๋งน๋ชฉ์ ์ผ๋ก ํธ๋ํฝ์ ์ ๋ฌํ๋ ๊ฐ๋จํ ํ๋ฝ์๋ฅผ ๊ตฌํํ๋ ๋ฐฉ์์ด ์ ์ฉํ ๋๊ฐ ์๋๋ฐ, ๋จ์ ํํฐ๋ง์ด๋ ์ง๋จ, ์ปจํ ์ธ ๋ณํ์ ํ๋๋ฐ ์ฐ์ธ๋ค.
ํ์ง๋ง ๋ฆด๋ ์ด๊ฐ ๊ฐ์ง๋ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ์๋๋ฐ, Connection ํค๋๋ฅผ ์ ๋๋ก ์ฒ๋ฆฌํ์ง ๋ชปํด์ keep-alive ์ปค๋ฅ์ ์ด hang์ ๊ฑธ๋ฆฌ๋ ๊ฒ์ด๋ค.
Connection: Keep-aliveํค๋๋ฅผ ๊ทธ๋๋ก ๋ณด๋ด๋ฒ๋ฆฐ๋ค. ์๋ฒ์์๋ ๋ฆด๋ ์ด๊ฐ ์์ ๊ณผ keep-alive ์ปค๋ฅ์ ์ ๋งบ๊ณ ์ถ์ดํ๋๊ฒ์ผ๋ก ๊ฐ์ฃผํ๊ณ ์ปค๋ฅ์ ์ ์ด์ด๋๊ณ , ํ์ธ์๋ต์ ๋ณด๋ธ๋ค.
๋ฆด๋ ์ด๋ ํ์ธ์๋ต์ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํด์ค๋ค. ํด๋ผ์ด์ธํธ๋ ๋ค์์์ฒญ์ ๋ณด๋ธ๋ค. ํ์ง๋ง ๋ฆด๋ ์ด๋ ์๋ฒ๊ฐ ์ปค๋ฅ์ ์ ๋์ด์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ์ ๋ค์์์ฒญ์ ๋ฐ์ ์ ์๋ค.