ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Computer Network] HTTP
    Computer Science/Computer Network 2020. 5. 30. 15:00

    ๐Ÿ“HTTP (Hypertext Transfer Protocol)     

    โ—พ HTTP๋Š” Web์ƒ์—์„œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

    โ—พ HTTP/1, HTTP/2๋Š” TCP ๊ธฐ๋ฐ˜์ด๊ณ , HTTP/3์€ UDP ๊ธฐ๋ฐ˜์ด๋‹ค.

    1๏ธโƒฃ Client-Server Model 

    โ—พ HTTP๋Š” Client-Server Model๋กœ ๊ตฌํ˜„๋œ๋‹ค. 

    โ—พ Chrome, Internet Explore, Fire Fox ๋“ฑ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” HTTP Client ๋‹จ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

    โ—พ Web Server๋Š” HTTP์˜ Server ๋‹จ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

    โ—พ Client๊ฐ€ Server์—๊ฒŒ ์ •๋ณด๋ฅผ Request ํ•˜๋ฉด, Server๋Š” Response ํ•˜๋ฉฐ ์ •๋ณด๋ฅผ Client์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

    2๏ธโƒฃ Stateless Protocol

    โ—พ HTTP Server๋Š” Client์˜ Request ๋‚ด์—ญ์„ ๊ธฐ์–ตํ•˜์ง€ ์•Š๋Š”๋‹ค. 

    โ—พ ์ฆ‰, Server๋Š” Client๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์‹๋ณ„ํ•  ์ˆ˜ ์—†๋‹ค. (๊ทธ๋ž˜์„œ Cookie์™€ Session์„ ์‚ฌ์šฉํ•œ๋‹ค.)

    3๏ธโƒฃ HTTP Connection

    โ—พ Non-Persistent Connection : ํ•œ ๋ฒˆ์˜ TCP ์—ฐ๊ฒฐ์—, ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋ชจ๋“  ์š”์ฒญ์— ๋Œ€ํ•œ TCP ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  Request/Response์— ๋Œ€ํ•œ TCP ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•œ๋‹ค. ์ด๋Š” Client์™€ Server๋Š” ์‹ฌ๊ฐํ•œ ๋ถ€๋‹ด์„ ์ค€๋‹ค. ๋˜ํ•œ ๋งค๋ฒˆ TCP ์‚ฌ์ „ ์—ฐ๊ฒฐ ์„ค์ • ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.  

     

    โ—พ Persistent Connection : ํ•œ ๋ฒˆ์˜ TCP ์—ฐ๊ฒฐ์—, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. Sever๊ฐ€ Client์—๊ฒŒ Response๋ฅผ ๋ณด๋‚ธ ํ›„์— TCP ์—ฐ๊ฒฐ์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ๋‹ค. (HTTP ์„œ๋ฒ„๋Š” ์ผ์ • ๊ธฐ๊ฐ„ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด(timeout), ์—ฐ๊ฒฐ์„ ๋‹ซ๋Š”๋‹ค.)  Pipelining์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด์žˆ๋‹ค.

    4๏ธโƒฃ HTTP Method Type

    โ—พ GET : ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์š”์ฒญ

    โ—พ POST : ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก

    โ—พ PUT : ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „์ฒด ๊ฐฑ์‹  ์š”์ฒญ

    โ—พ PATCH : ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ผ๋ถ€ ๊ฐฑ์‹  ์š”์ฒญ

    โ—พ DELETE : ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์š”์ฒญ

    โ—พ HEAD : ์„œ๋ฒ„์— ํ—ค๋” ์š”์ฒญ

    5๏ธโƒฃ HTTP Satus Code

    โ—พ 200 OK : ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋˜์—ˆ๋‹ค.

    โ—พ 201 Moved Permanently : ์š”์ฒญ ๊ฐ์ฒด๊ฐ€ ์˜์›ํžˆ ์ด๋™ ๋˜์—ˆ๋‹ค.

    โ—พ 400 Bad Request : ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ์˜ค๋ฅ˜ ์ฝ”๋“œ

    โ—พ 404 Not Found : ์„œ๋ฒ„์—์„œ ์š”์ฒญ๋ฐ›์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค.

    โ—พ 505 HTTP VErsion Not Supported : ์š”์ฒญ HTTP ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „์„ ์„œ๋ฒ„๊ฐ€ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.

    6๏ธโƒฃ HTTP Message Format

    โ—พ HTTP Message๋Š” ASCII๋กœ ์“ฐ์—ฌ์žˆ์–ด์„œ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

    โ—พ HTTP Message์˜ ๊ฐ ์ค„์€ CR๊ณผ LF๋กœ ๊ตฌ๋ณ„๋œ๋‹ค.  ๋งˆ์ง€๋ง‰ ์ค„์€ ์ถ”๊ฐ€ CR๊ณผ LF๊ฐ€ ์š”๊ตฌ๋œ๋‹ค.

    ๐Ÿ“œ HTTP Request Massage

    ๐Ÿ”Ž ๋ถ„์„

    โ—พ HTTP Request Massage์˜ ์ฒซ ์ค„์€ Request line์ด๋‹ค. HTTP Method, URL, HTTP ๋ฒ„์ „ ํ•„๋“œ๋ฅผ ๊ฐ–๋Š”๋‹ค. 

    โ—พ HTTP ๋ฒ„์ „์€ 1.1์ด๊ณ  /index.html ๊ฐ์ฒด๋ฅผ GET ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญํ•˜๊ณ  ์žˆ๋‹ค.

    โ—พ Host : ๊ฐ์ฒด๊ฐ€ ์กด์žฌํ•˜๋Š” ํ˜ธ์ŠคํŠธ๋Š” www-net.cs.umass.edu ์ด๋‹ค.

    โ—พ User-Agent : Server์—๊ฒŒ ์š”์ฒญํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ํƒ€์ž…์ด๋‹ค. Firefox 3.6.10 ๋ฒ„์ „์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

    โ—พ Accept-Language : ์š”์ฒญํ•˜๋Š” ๊ฐ์ฒด์˜ ์–ธ์–ด ๋ฒ„์ „์ด๋‹ค. ์˜์–ด(๋ฏธ๊ตญ), ์˜์–ด ๋ฒ„์ „์„ ์š”์ฒญํ•œ๋‹ค.

    โ—พ Accept-Encoding : ์‘๋‹ต ๊ฐ์ฒด๋ฅผ gzip ๋˜๋Š” deflate ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์••์ถ•ํ•ด์„œ ๋ณด๋‚ด๋„ ๋จ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

    โ—พ Accept-Charset : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง€์›ํ•˜๋Š” ์ธ์ฝ”๋”ฉ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ISO-8859-1 ๋˜๋Š” utf-8 ์ธ์ฝ”๋”ฉ์„ ์ง€์›ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

    โ—พ Connection : keep-alive๋กœ ๋˜์–ด์žˆ๋‹ค. Persistent Connection ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•œ๋‹ค.  

    โ—พ Keep-Alive : Persistent Connection ์—ฐ๊ฒฐ ์ง€์† ์‹œ๊ฐ„์ด๋‹ค. (์ดˆ๋‹จ์œ„) 115์ดˆ์˜ time out์„ ๊ฐ–๋Š”๋‹ค. 

     

    ๐Ÿ“œ HTTP Response Massage

    ๐Ÿ”Ž ๋ถ„์„

    โ—พ HTTP Response Massage์˜ ์ฒซ ์ค„์€ Satus Line์ด๋‹ค. HTTP ๋ฒ„์ „, ์ƒํƒœ ์ฝ”๋“œ, ์ƒํƒœ ๋ฉ”์„ธ์ง€ ํ•„๋“œ๋ฅผ ๊ฐ–๋Š”๋‹ค. 

    โ—พ Date : Response Message๋ฅผ ๋ณด๋‚ธ ์‹œ๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค. 2010๋…„ 9์›” 26์ผ ์ผ์š”์ผ 20:09:20 GMT์— ์‘๋‹ต ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋ƒˆ๋‹ค.

    โ—พ Server : Response Message๊ฐ€ Apache ์›น ์„œ๋ฒ„์— ์˜ํ•ด ๋งŒ๋“ค์–ด์กŒ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. Request Message์˜ User-agent์™€ ๋น„์Šทํ•˜๋‹ค.

    โ—พ Last-Modified : ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •๋œ ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํ”„๋ก์‹œ ์„œ๋ฒ„์—์„œ ์บ์‹ฑ์„ ํ• ๋•Œ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. 2007๋…„ 10์›” 30์ผ ์ˆ˜์š”์ผ 17:00:02 GMT์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •๋์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

    โ—พ Content-Length : ์†ก์‹ ๋˜๋Š” ๊ฐ์ฒด์˜ ๋ฐ”์ดํŠธ ์ˆ˜๋ฅผ 1 ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ฐ์ฒด์˜ ํฌ๊ธฐ๋Š” 2652 Byte์ด๋‹ค.

    โ—พ Content-Type : ๊ฐ์ฒด์˜ ํƒ€์ž…์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. html text์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

     

    ๋” ์•Œ์•„๋ณด๊ธฐ

    ๋”๋ณด๊ธฐ

    โ—พ HTTP 1.1 Keep-Alive ๊ธฐ๋Šฅ :  https://b.pungjoo.com/entry/HTTP-11-Keep-Alive-%EA%B8%B0%EB%8A%A5%EC%97%90-%EB%8C%80%ED%95%B4

    โ—พ HTTP/3๋Š” ์™œ UDP๋ฅผ ์„ ํƒํ•œ ๊ฒƒ์ผ๊นŒ? : https://evan-moon.github.io/2019/10/08/what-is-http3/

     

    โ—พ HTTP ์••์ถ• ์ž‘๋™ ์›๋ฆฌ : http://www.simpleisbest.net/archive/2005/07/18/185.aspx

     

    โ—พ HTTP ์ธ์ฝ”๋”ฉ, ๊ตญ์ œํ™” ๊ด€๋ จ : https://feel5ny.github.io/2020/01/13/HTTP_016/

     

    โ—พ HTTP ์ƒํƒœ ์ฝ”๋“œ : https://developer.mozilla.org/ko/docs/Web/HTTP/Status

    'Computer Science > Computer Network' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    [Computer Network] SOP & CORS  (0) 2020.06.02
    [Computer Network] Web Cache  (0) 2020.06.01
    [Computer Network] Protocol Layer  (0) 2020.05.29
    [Computer Network] UDP & TCP  (0) 2020.05.09

    ๋Œ“๊ธ€

Designed by Tistory.