2020-11-25(Wed)
Last updated
Last updated
ํ์ต ๋ ์ง // 2020-11-25(์)
ํ์ต์๊ฐ // 9:00~22:00
ํ์ต ๋ฒ์ ๋ฐ ์ฃผ์ // Webserv ์๋ฌ์ก๊ธฐ
๋๋ฃ ํ์ต ๋ฐฉ๋ฒ // sanam, yohai๋๊ณผ ํ ์
ํ์ต ๋ชฉํ // webserv ์๋ฌ๋ฅผ ์ก๋๋ค.
์์ธ ํ์ต ๋ด์ฉ
๋ด ์ถ์ธก์ด ์ณ์๋ค.
์์ฒญ์ ๋ฐ์ ๋ ์๋๋ฅผ ์ํด BUFFER_SIZE๋งํผ ์ฝ๊ณ ๊ทธ ์์ ํฌํจ๋ request_line๊ณผ headers์ ๋์์ ์ฒ๋ฆฌํ๊ฒ ๋ค๊ณ ์์ ํ์ฌ receiveRequestWithoutBody ํจ์๋ฅผ ๋ง๋ค์๋ ๋ฐ ์๋ค.
๋ฌธ์ ๋ ์ฐ๋ฆฌ ์์๋๋ก ์์ฒญ์ด ๋ค์ด์ค์ง ์๋ ๊ฒฝ์ฐ-request_line๋ง ํฌํจ๋ ๊ฒฝ์ฐ, request_line์ด ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ, headers๋ง ํฌํจ๋ ๊ฒฝ์ฐ, ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ, ๋๋ค ํจ๊ป ํฌํจ๋ ๊ฒฝ์ฐ, ๋๋ค ํจ๊ป ํฌํจ๋์๋๋ฐ headers๋ ๋๊น์ง ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ ๋ฑ๋ฑ-์ ๊ฒฝ์ฐ์ ์๊ฐ ๋ง๋ค๋ณด๋ ์ฝ๋๊ฐ ๋ณต์กํด์ง๊ณ ์ค๋ฅ๊ฐ ๋ง์์ง๋ ๋ค๋ ๊ฒ์ด๋ค. ํนํ CRLF๊ฐ ์ฝ์ด์จ ๋ฐ์ดํฐ์ ๋์ ๊ฑธ๋ฆฐ๋ค๋ฉด ๋ฐ๋ก recv๋ฅผ ํ์นธ๋ง ๋ ํด์ ํ์ธํด๋ณด๋ฉด ์ข์ํ ๋ฐ subject ์ ์ฝ์ ๋ฐ๋ผ select ๊ฑฐ์ณ์ recv๋ฅผ ํด์ผํ๋ค๋ ์ , errno ์ฒดํฌ๋ ๋ชปํ๋ค๋ ์ ์์ ๋งค์ฐ ๋ถ๊ธฐ๊ฐ ๋ณต์กํด์ง๋ค. ํ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด ๋ค๋ฅธ ๊ณณ์์ ๋ฌธ์ ๊ฐ ํฐ์ง๋ ๊ฒ์ด ์ด ๋๋ฌธ์ด๋ค.
๊ทธ๋์, ์ฐ์ ์ค๊ณ๋ถํฐ ๋ฐ๊พธ๊ธฐ๋ก ํ์๋ค.
์์์ recevieRequestWithoutBody๋ฅผ receiveRequestLine๊ณผ receiveRequestHeaders๋ก ๋๋๋ ๊ฒ๋ถํฐ ํ๋๋ฐ ๊ต์ฅํ ๋ง์กฑ์ค๋ฝ๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.
ํ์ต ๋ด์ฉ์ ๋ํ ๊ฐ์ธ์ ์ธ ์ดํ
์ญ์ ๋ฌธ์ ๋ฅผ ๋ฐ๋ผ๋ณผ ๋ ์ฐ์ ๊ตฌ์กฐํํด์ ์ชผ๊ฐ๋ณด๋ ๊ฒ์ด ์ค์ํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฒ ๋ฌธ์ ๋ ๊ทธ๋ ๊ฒ ํด๋ ์ ํด๊ฒฐ์ด ๋์ง ์์์ ๋ถ์ํด๋ณด์๋๋, ์ชผ๊ฐ์ด์ง ๋ฌธ์ ๋ฅผ ํ๋์ ํจ์๋ก ํ๊บผ๋ฒ์ ํด๊ฒฐํ๋ ค๋ค๋ณด๋ ์ง์ง๋ถ์งํ๋ค๋๊ฒ ๋๋ฌ๋ฌ์ต๋๋ค. ์ชผ๊ฐ์ด์ง ๋ฌธ์ ๋ฅผ ํจ์๋ฅผ ์ชผ๊ฐ์ด ๋์ํ์๋๋ ๊ตฌ์กฐ๊ฐ ์ง๊ด์ ์ผ๋ก ๋ฐ๋๊ณ ๊ฐ๋ ์ฑ๋ ์ข์์ง๊ฒ ๋๊ปด์ง๋๋ค. ์ฌ์ฌ ๋์ด๋ณด์ด๋ค์.
๋ค์ ํ์ต ๊ณํ
Webserv ์ค๋ฅ์ก๊ธฐ