๐Ÿ’ก์›น์„ ์ด์šฉํ•  ๋•Œ๋Š” ์ด๋ ‡๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.

1 minute read

๐Ÿ“Œ ๋ชฉ์ฐจ

  • http ํ”„๋กœ์ฝ”ํ†จ
  • http ์š”์ฒญ ํ”„๋กœํ† ์ฝœ
  • http ์‘๋‹ต ํ”„๋กœํ† ์ฝœ
  • http ํ—ค๋” ํฌ๋งท

์›น์„ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ๋“ค

ํ•„์ˆ˜

http(https โ†’ SSL/TLS) ํ”„๋กœํ† ์ฝœ์ž„

์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š” ์• ๋“ค

client
  • html (์›นํŽ˜์ด์ง€๋ฅผ ์ฑ„์›€)
  • javascript (๊ธฐ๋Šฅ)
  • css (๋””์ž์ธ)
server
  • asp/asp.net
  • jsp
  • php

DB


์„ ํƒ

python

Spring

jquery

Ajax


๐Ÿ“Œ HTML
  • HyperText Transfer Protocol (ํ•˜์ดํผ ํ…์ŠคํŠธ ์ „์†ก ํ”„๋กœํ† ์ฝœ)
  • www์—์„œ ์“ฐ์ด๋Š” ํ•ต์‹ฌ ํ”„๋กœํ† ์ฝœ๋กœ ๋ฌธ์„œ์˜ ์ „์†ก์„ ์œ„ํ•ด ์“ฐ์ด๋ฉฐ, ์˜ค๋Š˜๋‚  ๊ฑฐ์˜ ๋ชจ๋“  ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.
    • ์Œ์„ฑ, ํ™”์ƒ ๋“ฑ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ MIME(Multipurpose Internet Mail Extensions, ํŒŒ์ผ๋ณ€ํ™˜)๋กœ ์ •์˜ํ•˜์—ฌ ์ „์†ก ๊ฐ€๋Šฅ
๐Ÿ“Œ HTTP ํŠน์ง•
  • Request
  • Response

์š”์ฒญ/์‘๋‹ต โ†’ ๋™์ž‘์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์„œ๋น„์Šค ์ œ๊ณต

  • 1.0 ๋ฒ„์ „์˜ ํŠน์ง•

    • ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ๋™์ž‘ / ์—ฐ๊ฒฐ ํ•ด์ œ์˜ ๋‹จ์ˆœํ•จ์ด ํŠน์ง•

      โ†’ ํ•˜๋‚˜์˜ URL์€ ํ•˜๋‚˜์˜ TCP ์—ฐ๊ฒฐ

      HTML ๋ฌธ์„œ๋ฅผ ์ „์†ก ๋ฐ›์€ ๋’ค ์—ฐ๊ฒฐ์„ ๋Š๊ณ  ๋‹ค์‹œ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค.

  • 1.0 ๋ฒ„์ „์˜ ๋ฌธ์ œ์ 

    • ๋‹จ์ˆœ ๋™์ž‘ (์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ, ๋™์ž‘, ์—ฐ๊ฒฐ ํ•ด์ œ)์ด ๋ฐ˜๋ณต๋˜์–ด ํ†ต์‹  ๋ถ€ํ•˜ ๋ฌธ์ œ ๋ฐœ์ƒ
  • 1.1 ๋ฒ„์ „์˜ ํŠน์ง•

  • HTTP 1.0๊ณผ ํ˜ธํ™˜ ๊ฐ€๋Šฅ

    • multiple Request ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜์—ฌ Client์˜ Request๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ ์—ฐ์†์ ์ธ ์‘๋‹ต ์ œ๊ณต
    • Pipeline ๋ฐฉ์‹์˜ Request / Response ์ง„ํ–‰
    • 1.0๊ณผ๋Š” ๋‹ฌ๋ฆฌ Server๊ฐ€ ๊ฐ–๋Š” ํ•˜๋‚˜์˜ IP Address์™€ ๋‹ค์ˆ˜์˜ Web Site ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ

    • ๋น ๋ฅธ ์†๋„์™€ Internet Protocol ์„ค๊ณ„์— ์ตœ์ ํ™”๋  ์ˆ˜ ์žˆ๋„๋ก Cache ์‚ฌ์šฉ Data๋ฅผ ์••์ถ•ํ•ด์„œ ์ „๋‹ฌ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜์—ฌ ์ „๋‹ฌํ•˜๋Š” Data์–‘์ด ๊ฐ์†Œ
  • HTTP ์š”์ฒญ ํ”„๋กœํ† ์ฝœ

    • ์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹์„ ์ •์˜
    • Request Line, Headers(์—„์ฒญ ๋งŽ์Œ), ๊ณต๋ฐฑ, Body
  • Request Line

    • ์š”์ฒญ ํƒ€์ž… + ๊ณต๋ฐฑ + URL + ๊ณต๋ฐฑ + HTTP ๋ฒ„์ „ (๋„์–ด์“ฐ๊ธฐ ํ•„์ˆ˜)

    • ์š”์ฒญ ํƒ€์ž…

      • GET, POST PUT, PATCH, COPY, MOVE, DELETE, LINK, UNLINK, OPTION
      • GET: client โ†’ Server๋กœ๋ถ€ํ„ฐ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด์˜ค๋ ค ํ•  ๋•Œ ์‚ฌ์šฉ ์š”์ฒญ ๊ฐ€๋Šฅ
      • POST: client โ†’ Server๋กœ๋ถ€ํ„ฐ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด์˜ค๋ ค ํ•  ๋•Œ ์‚ฌ์šฉ ์š”์ฒญ ๊ฐ€๋Šฅ
      • ?? ์ฐจ์ด์ ์ด ์—†๋Š”๋Ž…??
      • ์ด ๋‘˜์˜ ์ฐจ์ด์ 
        • url์— ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด์„œ ๋ณด๋‚ด์ง: GET (๋…ธ์ถœ๋˜์–ด๋„ ๋ณ„๋กœ ์ค‘์š”ํ•˜์ง€ ์•Š์Œ)
        • ํŒจํ‚ท์— ๋‹ด์•„์„œ ๋ณด๋‚ด์คŒ: POST (๋…ธ์ถœ๋˜๋ฉด ์•ˆ๋จ)
    • URI(Uniform Resource Identifier)

      โ†’ ๊ทธ๋ƒฅ ์ฃผ์†Œ ์ „์ฒด๋ฅผ ์˜๋ฏธํ•จ.

      • ์Šคํ‚ค๋งˆ + ํ˜ธ์ŠคํŠธ + ํฌํŠธ + ํŒจ์Šค + ์ฟผ๋ฆฌ
    • ์‘๋‹ต ๋ฐฉ์‹

    • Status Line + Headers + ๊ณต๋ฐฑ + Body

    • ์ƒํƒœ์ฝ”๋“œ

      • 100 โ†’ ๋‹จ์ˆœํ•œ ์ •๋ณด
      • 200 โ†’ ์š”์ฒญ ์„ฑ๊ณต
      • 400 โ†’ client๊ฐ€ ์ž˜๋ชป
      • 500 โ†’ server์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚˜๊ฑฐ๋‚˜ client ์š”์ฒญ ์ˆ˜ํ–‰ ๋ถˆ๊ฐ€
  • HTTP ํ•ด๋” ํฌ๋งท

    • Request Line

      โ†’ ์ผ๋ฐ˜, ์š”์ฒญ, ํ•ญ๋ชฉ, ํ—ค๋”

      โ†’ ๊ณต๋ฐฑ

      โ†’ body

    • Status Line

      โ†’ ์ผ๋ฐ˜, ์š”์ฒญ, ํ•ญ๋ชฉ, ํ—ค๋”

      โ†’ ๊ณต๋ฐฑ

      โ†’ body

    • ์ผ๋ฐ˜ ํ—ค๋”
      • Content-Length: ๋ฉ”์„ธ์ง€ ๋ฐ”๋”” ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์“ฐ์ธ๋‹ค.
      • Content-Type: ๋ฉ”์„ธ์ง€ ๋ฐ”๋””์— ๋“ค์–ด์žˆ๋Š” ์ปจํ…์ธ  ์ข…๋ฅ˜(HTML ๋ฌธ์„œ๋Š” Text/html)
    • ์š”์ฒญ ํ—ค๋”
      • Cookie: ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ ๋‹ค์‹œ ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
      • Host: ์š”์ฒญ๋œ URL์— ๋‚˜ํƒ€๋‚œ ํ˜ธ์ŠคํŠธ๋ช…์„ ์ƒ์„ธํ•˜๊ฒŒ ํ‘œ์‹œ
      • User-Agent: Client Program์— ๋Œ€ํ•œ ์‹๋ณ„ ๊ฐ€๋Šฅ ์ •๋ณด๋ฅผ ์ œ๊ณต