Search
moon
sun

HTTP

Created
2022/09/03 11:10
1 more property

HTTP

HTTP๋ž€?

HyperText Transfer Protocol์˜ ์•ฝ์ž
โ€ข
ํด๋ผ์ด์–ธํŠธ ๋ชจ๋ธ
โ—ฆ
ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)๋Š” ์š”์ฒญ, ์ˆ˜์‹  ๊ทธ๋ฆฌ๊ณ  ์›น ์˜ค๋ธŒ์ ํŠธ ํ‘œํ˜„์„ ๋‹ด๋‹นํ•œ๋‹ค.
โ€ข
์„œ๋ฒ„ ๋ชจ๋ธ
โ—ฆ
์„œ๋ฒ„๋Š” ์š”์ฒญ์— ๋”ฐ๋ฅธ ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.

HTTP๋Š” stateless ํ•˜๋‹ค.

์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๊ณผ๊ฑฐ์‘๋‹ต์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค.
์™œ๋ƒํ•˜๋ฉด ์ƒ๋Œ€๋ฅผ ์œ ์ง€ํ•˜๋Š”๊ฒƒ์€ ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Non-Persistent HTTP

์„œ๋ฒ„์ชฝ์—์„œ ํ•˜๋‚˜์˜ ์˜ค๋ธŒ์ ํŠธ๋งŒ ๋ณด๋‚ธ ๋’ค, TPC ์ปค๋„ฅ์…˜์„ ์ข…๋ฃŒํ•˜๋Š” HTTP

HTTP์˜ ์š”์ฒญ ํ๋ฆ„

1.
์œ ์ €๊ฐ€ URL์„ ์ž…๋ ฅ (www.someSchool.edu/someDepartment/home.index)
2.
HTTP ํด๋ผ์ด์–ธํŠธ (๋ธŒ๋ผ์šฐ์ €)๋Š” HTTP์„œ๋ฒ„์— TCP์ปค๋„ฅ์…˜์„ ๋งบ์Œ (:80 ํฌํŠธ)
a.
HTTP์˜ ๊ฒฝ์šฐ well known port ๋ฒˆํ˜ธ๋ฅผ ์ด์šฉํ•œ๋‹ค. 80๋ฒˆ
3.
์„œ๋ฒ„๋Š” 80๋ฒˆ ํฌํŠธ์˜ ์ปค๋„ฅ์…˜์„ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. ์ปค๋„ฅ์…˜์ด ๋งบ์–ด์งˆ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์•Œ๋ฆผ
4.
๊ทธ๋Ÿฌ๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” TCP ์†Œ์ผ“์„ ํ†ตํ•ด์„œ HTTP ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋ƒ„. ์œ„ ์š”์ฒญ์—์„œ๋Š” someDepartment/home.index๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธธ ์›ํ•œ๋‹ค๋Š” ๋ฉ”์„ธ์ง€์ž„
5.
HTTP์„œ๋ฒ„๋Š” ์š”์ฒญ ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์‹ ํ•จ, ๊ทธ๋ฆฌ๊ณ  ์š”์ฒญ์— ๋งž๋Š” Response ๋ฉ”์„ธ์ง€๋ฅผ ์†Œ์ผ“์„ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ด์คŒ
6.
ํ•ด๋‹น ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ธ ์„œ๋ฒ„๋Š” TCP์ปค๋„ฅ์…˜์„ ์ข…๋ฃŒํ•จ
7.
HTTP ํด๋ผ์ด์–ธํŠธ๋Š” ์‘๋‹ต์„ ๋ฐ›๊ณ  HTML์„ ํŒŒ์‹ฑํ•˜๊ณ  ํ™”๋ฉด์— ํ‘œ์‹œํ•จ, ๊ทธ๋ฆฌ๊ณ  ํŒŒ์‹ฑ์ค‘ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ํŒŒ์ผ๋“ค(์ด๋ฏธ์ง€)๋ฅผ ๋ฐœ๊ฒฌํ•จ

HTTP์˜ ์‘๋‹ต ์‹œ๊ฐ„

RTT์— ๊ด€ํ•œ ์„ค๋ช…์ด๋ฏธ์ง€
์‘๋‹ต์‹œ๊ฐ„(Response Time)์ด๋ž€? ์œ ์ €๊ฐ€ ๋ณด๋‚ธ ์‘๋‹ต์ด server๋ฅผ ๊ฑฐ์ณ ์œ ์ €์—๊ฒŒ display ๋ ๋•Œ ๊นŒ์ง€์˜ ์‹œ๊ฐ„
โ€ข
RTT(Round Trip Time) : ์ž‘์€ ํŒจํ‚ท์ด ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ณด๋‚ด ์„œ๋ฒ„์—์„œ ๋˜๋Œ์•„์˜ฌ๋•Œ๊นŒ์ง€์˜ ์‹œ๊ฐ„
โ€ข
HTTP Response Time
โ—ฆ
TCP ์ปค๋„ฅ์…˜์„ ์œ„ํ•œ ํ•˜๋‚˜์˜ RTT
โ—ฆ
HTTP ์š”์ฒญ๊ณผ ์ž‘์€ ์‘๋‹ต ๋ฐ”์ดํŠธ๊ฐ€ ๋Œ์•„์˜ฌ๋•Œ ๊นŒ์ง€์˜ RTT
โ—ฆ
ํŒŒ์ผ ์ „์†ก ์‹œ๊ฐ„
โ—ฆ
์‘๋‹ต์‹œ๊ฐ„ = 2RTT + ํŒŒ์ผ ์ „์†ก ์‹œ๊ฐ„

Persistent HTTP

Non-Persistent HTTP Issues (A.K.A. HTTP 1.0)

โ€ข
๋งค ์˜ค๋ธŒ์ ํŠธ ์š”์ฒญ๋งˆ๋‹ค 2๊ฐœ์˜ RTT๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
โ€ข
์ด๋Ÿฐ ๋”œ๋ ˆ์ด๋ฅผ ๋ง‰๊ธฐ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋ณ‘๋ ฌ์  TCP์ปค๋„ฅ์…˜์„ ๋งบ๊ธฐ๋„ ํ•œ๋‹ค.
โ€ข
OS๋Š” ์ด๋Ÿฐ ๊ฐ๊ฐ์˜ ์ปค๋„ฅ์…˜์— ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๊ฒช๋Š”๋‹ค.
โ—ฆ
๊ฐ ์†Œ์ผ“๋งˆ๋‹ค ๋ฒ„ํผ, TCP ์ปค๋„ฅ์…˜์„ ํ• ๋‹นํ•ด์ค˜์•ผ ํ•˜๋ฏ€๋กœ!

Persistent HTTP (A.K.A. HTTP 1.1)

โ€ข
์„œ๋ฒ„๋Š” ์‘๋‹ต์„ ์ „์†กํ•œ ํ›„ ์—ฐ๊ฒฐ๋œ ์ปค๋„ฅ์…˜์„ ๋‹ซ๋Š”๋‹ค.
โ€ข
HTTP ๋ฉ”์„ธ์ง€๋ฅผ ์ด๋ฏธ ์—ด๋ ค์ ธ ์žˆ๋Š” ์ปค๋„ฅ์…˜์„ ํ†ตํ•ด์„œ ์š”์ฒญํ•œ๋‹ค.
โ€ข
๋•Œ๋ฌธ์— ๋ชจ๋“  ์ฐธ์กฐ ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•ด ์ตœ์†Œ ํ•˜๋‚˜์˜ RTT๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค.

HTTP Message

HTTP์—๋Š” 2๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๋ฉ”์„ธ์ง€ ํƒ€์ž…์ด ์žˆ๋‹ค. (Request, Response)

HTTP Request Message

HTTP ์š”์ฒญ์— ๋Œ€ํ•œ ๋ฉ”์„ธ์ง€
HTTP ์š”์ฒญ์˜ ์ผ๋ฐ˜์ ์ธ ํฌ๋ฉง
โ€ข
HTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€๋Š” ASCII ์ฝ”๋“œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

POST ๋ฉ”์„œ๋“œ

โ€ข
์›นํŽ˜์ด์ง€๋Š” ๊ฐ€๋” ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„์•ผํ• ๋•Œ๊ฐ€ ์žˆ๋‹ค.
โ€ข
์ž…๋ ฅ์€ entry body์— ์ž…๋ ฅ๋˜์–ด ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค.

URL ๋ฉ”์„œ๋“œ

โ€ข
GET ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•œ๋‹ค.
โ€ข
URL ํ•„๋“œ์— ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. (์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ)

์š”์ฒญ ํƒ€์ž…์˜ ํ˜ธํ™˜์„ฑ

โ€ข
HTTP 1.0
โ—ฆ
GET, POST, HEAD
โ€ข
HTTP 1.1
โ—ฆ
GET, POST, HEAD, DELETE, PUT

HTTP Response Message

HTTP Status Code

์ƒํƒœ์ฝ”๋“œ๋Š” ์‘๋‹ต์˜ ์ฒซ๋ฒˆ์งธ ์ค„์— ์œ„์น˜ํ•ด์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
200 : OK
โ€ข
301 : Moved Permently
โ€ข
400 : Bad Request
โ€ข
404 : Not Found
โ€ข
505 : HTTP Version Not Support
์ฐธ๊ณ ํ•˜๊ธฐ ์ข‹์€ ์ž๋ฃŒ
2) ๋ชจ์งˆ๋ผ ๊ฐœ๋ฐœ์ž ์ƒํƒœ์ฝ”๋“œ ๋ฌธ์„œ - https://developer.mozilla.org/ko/docs/Web/HTTP/Status
3) Multipart/form-data๋Š” GET๊ณผ POST๋งŒ ์ง€์›ํ•œ๋‹ค : https://mangkyu.tistory.com/218
4) HTTP 3.0 QUIC ํ”„๋กœํ† ์ฝœ : https://blog.naver.com/PostView.nhn?blogId=renucs&logNo=220887163028