๐Ÿฑ ํ†ฐ์บฃ ๊ตฌํ˜„ํ•˜๊ธฐ ๐Ÿฑ

๐Ÿ” ์ง„ํ–‰ ๋ฐฉ์‹

  • ๋ฏธ์…˜์€ ๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ, ๋ฏธ์…˜ ์ง„ํ–‰ ์š”๊ตฌ ์‚ฌํ•ญ ๋‘ ๊ฐ€์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
  • ๋‘ ๊ฐœ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•œ๋‹ค. ํŠนํžˆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ๋งŒ๋“ ๋‹ค.
  • ๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ์— ๊ธฐ์žฌ๋˜์ง€ ์•Š์€ ๋‚ด์šฉ์€ ์Šค์Šค๋กœ ํŒ๋‹จํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค.

๐Ÿš€ step1: ๋ฏธ์…˜ ์„ค๋ช…

๊ฐ„๋‹จํ•œ HTTP ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

์ €์žฅ์†Œ์—์„œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ฐ›์•„์™€์„œ ๋ฉ”์ธ ํด๋ž˜์Šค๋ฅผ ์‹คํ–‰ํ•˜๋ฉด HTTP ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

์›น๋ธŒ๋ผ์šฐ์ €๋กœ ๋กœ์ปฌ ์„œ๋ฒ„(http://localhost:8080)์— ์ ‘์†ํ•˜๋ฉด Hello world!๊ฐ€ ๋ณด์ธ๋‹ค.

์ •์ƒ ๋™์ž‘์„ ํ™•์ธํ–ˆ์œผ๋ฉด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ณด์ž.

โš™๏ธ ๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ

1. GET /index.html ์‘๋‹ตํ•˜๊ธฐ

์ธ๋ฑ์Šค ํŽ˜์ด์ง€(http://localhost:8080/index.html)์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์ž.

Http11ProcessorTest ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋ฉด ๋œ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์—์„œ ์š”์ฒญํ•œ HTTP Request Header๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

GET /index.html HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Accept: */*

2. CSS ์ง€์›ํ•˜๊ธฐ

์ธ๋ฑ์Šค ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๋‹ˆ๊นŒ ํ™”๋ฉด์ด ์ด์ƒํ•˜๊ฒŒ ๋ณด์ธ๋‹ค.

๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์—ด์–ด์„œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒดํฌํ•ด๋ณด๋‹ˆ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ CSS๋ฅผ ๋ชป ์ฐพ๊ณ  ์žˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์—ด์—ˆ์„ ๋•Œ CSS ํŒŒ์ผ๋„ ํ˜ธ์ถœํ•˜๋„๋ก ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์ž.

GET /css/styles.css HTTP/1.1
Host: localhost:8080
Accept: text/css,*/*;q=0.1
Connection: keep-alive

3. Query String ํŒŒ์‹ฑ

http://localhost:8080/login?account=gugu&password=password์œผ๋กœ ์ ‘์†ํ•˜๋ฉด ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€(login.html)๋ฅผ ๋ณด์—ฌ์ฃผ๋„๋ก ๋งŒ๋“ค์ž.

๊ทธ๋ฆฌ๊ณ  ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์— ์ ‘์†ํ–ˆ์„ ๋•Œ Query String์„ ํŒŒ์‹ฑํ•ด์„œ ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ํšŒ์›์„ ์กฐํšŒํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋„๋ก ๋งŒ๋“ค์ž.

โœ๏ธ ๋ฏธ์…˜ ์ง„ํ–‰ ์š”๊ตฌ ์‚ฌํ•ญ

  • ๋ฏธ์…˜์€ jwp-dashboard-http-mission ์ €์žฅ์†Œ๋ฅผ Fork & Cloneํ•ด ์‹œ์ž‘ํ•œ๋‹ค.
  • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „ README.md์— ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ •๋ฆฌํ•ด ์ถ”๊ฐ€ํ•œ๋‹ค.