์ผ๊ณฑ๋ฒ์งธ ๊ถ๊ธ์ฆ : HTTP๋ ๋ฌด์์ผ๊น?
- HTTP๋
HTTP๋ Hyper Text Transfer Protocol์ ์ฝ์์ ๋๋ค. ์ธํฐ๋ท์ ์ฐ๋ฆฌ๊ฐ ๋ณด๋ ๋ฌธ์๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ์๋ฒ(server)์ธ ์น ์๋ฒ์ ํด๋ผ์ด์ธํธ(client)์ธ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ํต์ ํ๋๋ฐ, ์ฌ๊ธฐ์ ์ง์ผ์ผ ํ ํต์ ๊ท์ฝ์ด ๋ฐ๋ก HTTP์ ๋๋ค. ๊ฐ๊ฒ์์ ์๋(client)์ด ์๊ตฌํ๋ฉด ์ ์(server)์ด ๋ฌผ๊ฑด์ ์ฃผ๋ฏ์ด ๋ง์ด์ฃ . ๊ฐ๊ฒ์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ํด๋ผ์ด์ธํธ์ธ ์น ๋ธ๋ผ์ฐ์ ๊ฐ HTTP๋ฅผ ํตํ์ฌ ์๋ฒ๋ก๋ถํฐ ์นํ์ด์ง(HTML)๋ ๊ทธ๋ฆผ ์ ๋ณด๋ฅผ ์์ฒญํ๋ฉด, ์๋ฒ๋ ์ด ์์ฒญ์ ์๋ตํ์ฌ ํ์ํ ์ ๋ณด๋ฅผ ํด๋น ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ๊ฒ ๋ฉ๋๋ค. ์ด ์ ๋ณด๊ฐ ๋ชจ๋ํฐ์ ๊ฐ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ๋ํ๋๋ ๊ฒ์ด์ฃ .
- HTTP ๋ฉ์๋
์ ๊ทธ๋ฆผ์ ๊ตฌ๊ธ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋คํธ์ํฌ ํ์ด์ง์ ๋๋ค. Request Method๊ฐ ๋ณด์ด์๋์? POST๋ผ๊ณ ์ ํ์์ต๋๋ค. HTTP ๋ฉ์๋๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ๋๋ค. HTTP์ ๋ฉ์๋ ์ข ๋ฅ์๋ GET, POST, PUT, PATCH, DELETE๋ฑ์ด ์์ต๋๋ค.
- HTTP ๋ฉ์์ง
HTTP ๋ฉ์์ง๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ํต์ ๋ฐฉ์์ ๋๋ค. ๋ฉ์์ง ํ์ ์ ์์ฒญ(Request), ์๋ต(Response) ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
HTTP ์์ฒญ ๋ฉ์์ง์ ์๋ต ๋ฉ์์ง์ ๊ตฌ์กฐ๋ ์๋ก ๋ฎ์์ผ๋ฉฐ, ๊ทธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์ ์ค(start-line)์๋ ์คํ๋์ด์ผ ํ ์์ฒญ, ๋์ ์์ฒญ ์ํ์ ๋ํ ์ฑ๊ณต ๋๋ ์คํจ๊ฐ ๊ธฐ๋ก๋์ด ์์ต๋๋ค. ์ด ์ค์ ํญ์ ํ ์ค๋ก ๋๋ฉ๋๋ค.
- ์ต์ ์ผ๋ก HTTP headers๊ฐ ๋ค์ด๊ฐ๋๋ค. ์ฌ๊ธฐ์๋ ์์ฒญ์ ๋ํ ์ค๋ช , ํน์ ๋ฉ์์ง ๋ณธ๋ฌธ์ ๋ํ ์ค๋ช ์ด ๋ค์ด๊ฐ๋๋ค.
- ์์ฒญ์ ๋ํ ๋ชจ๋ ์ ๋ณด๊ฐ ์ ์ก๋์์์ ์๋ฆฌ๋ ๋น ์ค(empty line)์ด ์ฝ์ ๋ฉ๋๋ค.
- body์๋ ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ด์ฉ(HTML ํผ ์ฝํ ์ธ ๋ฑ)์ด ์ต์ ์ผ๋ก ๋ค์ด๊ฐ๊ฑฐ๋, ์๋ต๊ณผ ๊ด๋ จ๋ ๋ฌธ์(document)๊ฐ ๋ค์ด๊ฐ๋๋ค. ๋ณธ๋ฌธ์ ์กด์ฌ ์ ๋ฌด ๋ฐ ํฌ๊ธฐ๋ ์ฒซ ์ค๊ณผ HTTP ํค๋์ ๋ช ์๋ฉ๋๋ค.
์์ฒญ๋ฉ์์ง์ ์๋ต๋ฉ์์ง์ ๊ตฌ์ฑ ์์๋ฅผ ๋ช ๊ฐ ๋ฝ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. ์์ฒญ(request)
GET /1.html HTTP/1.1 | HTTP ๋ฉ์๋ / ์์ฒญ ์ ๋ณด / HTTP ๋ฒ์ |
Host: localhost:8000 | ๋คํธ์ํฌ์ ์ปดํจํฐ๋ฅผ ์๋ณํ๋ ์ด๋ฆ |
User-Agent | ์ ์ ์ ์ปดํจํฐ๋ ๋ธ๋ผ์ฐ์ ์ ๋ณด |
Accept-Encoding : gzip, deflate, br | ๋ฐ์ดํฐ ์์ด ๋ง์ ๋ ์์ถํด์ ์ ์กํ ์ ์์ถ ์ง์ ๋ฐฉ์ ์ค๋ช |
empty line |
2. ์๋ต(reponse)
HTTP/1.1 403 Forbidden | HTTP ๋ฒ์ / * ์ํ ์ฝ๋(status code) / ์ฌ์ ๊ตฌ์ (phrase) |
Content-Type : text/html | ์ ๋ณด๋ฅผ ํด์ํ๋ ๋ฐฉ๋ฒ |
Content-Length: 220 | ์ ๋ณด์ ํฌ๊ธฐ |
empty line |
* ์ํ ์ฝ๋ (status code)
์์ฒญ ์ํ์ ๋ํ ์คํจ ๋๋ ์ฑ๊ณต์ ๋ํ ์ฝ๋
1xx : ์ ๋ณด๋ฅผ ์ฃผ๊ธฐ์ํ ์๋ต
2xx : ํต์ ์ฑ๊ณต (200 OK)
3xx : ๋ฆฌ๋ค์ด๋ ์
4xx : ํด๋ผ์ด์ธํธ ์๋ฌ (403 Forbidden, 404 Not Found)
5xx : ์๋ฒ ์๋ฌ (500 Internal Server Error)
- http์ https์ ์ฐจ์ด
https์ s๋ secure, ์ฆ ์์ ํจ์ ์ฝ์์ ๋๋ค. ์ํธํ๋ ์ฌ์ดํธ๋ฅผ ํตํด https๋ ์ฐ๋ฆฌ์ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ง์ผ์ค๋๋ค. ๋ง์ฝ http๋ฅผ ์ฐ๋ ์ฌ์ดํธ์์ ๋ก๊ทธ์ธ์ ํ๋ค๋ฉด ์กฐ์ฌํด์ผ๊ฒ ์ฃ .
<์ฐธ๊ณ ๋ฌธ์>
- ko.wikipedia.org/wiki/HTTP
- developer.mozilla.org/ko/docs/Web/HTTP/Message
- www.zerocho.com/category/HTTP/post/5b3723477b58fc001b8f6385
- opentutorials.org/module/3621
'๐ฉโ๐ป CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
#9. DNS์ ๋์์๋ฆฌ (0) | 2021.04.28 |
---|---|
#8. ๋ธ๋ผ์ฐ์ ์ ๋์ ์๋ฆฌ (0) | 2021.04.14 |
#6. ์น์ด๋ ๋ฌด์์ผ๊น? (0) | 2021.04.09 |
#5. ์ธํฐ๋ท์ ์ด๋ป๊ฒ ์๋ํ ๊น? (0) | 2021.03.14 |
#4. ์๊ณ ๋ฆฌ์ฆ์ด๋ ๋ฌด์์ผ๊น? (0) | 2021.03.03 |