[Web] Web Start!๐ŸŒŽ

jy9922ยท2022๋…„ 7์›” 25์ผ
0

Web

๋ชฉ๋ก ๋ณด๊ธฐ
1/4
post-thumbnail

๐ŸŒŽWeb๐ŸŒŽ

โœ” Internet

network of Network โ†’ infrastructure
internet ์ƒ์—์„œ HTTP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” world wide web service

โœ” TCP / IP

์ง€์ •ํ•œ IP ์ฃผ์†Œ(IP Address)์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•ด์ฃผ๋ฉฐ, ํŒจํ‚ท(Packet)์ด๋ผ๋Š” ํ†ต์‹  ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•œ๋‹ค.
โ†’ IP ( Internet Protocol )

๋‘ ๊ฐœ์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ๊ตํ™˜ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์ค‘์š”ํ•œ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
โ†’ TCP ( Transmission Control Protocol )

โœ” IP address

4byte ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์ฃผ์†Œ๋ฅผ ๋งํ•œ๋‹ค.

โœ” DNS (Domain Name System, Domain Name Server)

์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ๋จธ์‹ ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

โœ” Port ๋ฒˆํ˜ธ

์‹ค์ œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ• ๋‹น๋œ ๋…ผ๋ฆฌ์ ์ธ ์ˆซ์ž๋ฅผ ๋งํ•œ๋‹ค.

โœ” Hypertext

์‚ฌ์šฉ์ž”์˜ ์„ ํƒ์— ๋”ฐ๋ผ ๊ด€๋ จ๋œ ์ •๋ณด์ชฝ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ์งํ™”๋œ ์ •๋ณด๋ฅผ ๋งํ•œ๋‹ค.
www์˜ ๋ฐœ๋ช…, ๋ฐœ์ „์˜ ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ๋‹ค.

โœ” HTTPโญ

  1. CS ๊ตฌ์กฐ ( Client - Server ๊ตฌ์กฐ )
  2. Server process โ†’ Web Server ( 80 )

โœ” C/S๊ตฌ์กฐ

์ƒ๋Œ€์ ์œผ๋กœ ๋‹ค์ˆ˜์˜ client๊ฐ€ ์†Œ์ˆ˜์˜ server์— ์ ‘์†ํ•ด์„œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต๋ฐ›๋Š” ํ˜•ํƒœ๋ฅผ ๋งํ•œ๋‹ค.

Static web

process ์—†์ด web server๊ฐ€ client๊ฐ€ ์š”์ฒญํ•œ resource๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

Dynamic web

Server side์ธก์— program์ด ๋“ค์–ด๊ฐ„๋‹ค.
Servlet(Java) โ†’ ๋™์ ์œผ๋กœ HTML page(HTML)๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
( servlet : ๋™์  ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ  )

JSP

์ƒ์‚ฐ์„ฑ์œผ๋กœ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๊ตฌํ˜„์€ ์‰ฌ์šฐ๋‚˜ ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ์ข‹์ง€ ์•Š๋‹ค.

MVC

Servlet ์‚ฌ์šฉ ( + pattern์„ ์‚ฌ์šฉ )
๊ทธ๋Ÿฌ๋‚˜ ๊ตฌ์กฐ๋Š” ์žกํ˜”์ง€๋งŒ ํ†ต์ผ์„ฑ์ด ์ข‹์ง€ ์•Š์Œ โ†’ Framwork ( ์ถ”๊ฐ€์ ์ธ ๊ทœ์น™ ์ ์šฉ )
๐Ÿ’ก Spring ๋ฐฐ์šธ ๋•Œ, ๊ทธ ๋ถ€๋ถ„์„ ์ค‘์ ์ ์œผ๋กœ ์ƒ๊ฐํ•ด์„œ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ!

Http client - Server ๊ตฌ์กฐ

  • web client๊ฐ€ request๋ฅผ ๋ณด๋‚ธ๋‹ค.
  • Request URL : http://localhost:8080/path/file/(QueryString)
    ( Query String : ?key=value&key=value& ... )
  • ์ถ”๊ฐ€์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ์‹ถ์„ ๋•Œ, URL ๋’ค์ชฝ์— Query String์„ ๋ถ™์—ฌ์„œ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  • Web server ์ธก๋ฉด์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ HTTP Request๋ฅผ ์„ธ ๊ฐ€์ง€ ์ธก๋ฉด์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ฐ›๋Š”๋‹ค.

HTTP Request

Request line

  • HTTP ๋ฉ”์„œ๋“œ + URL + HTTP/1.1
    • POST / GET - Client๊ฐ€ Server์— Request๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹
    • URL - path/file ๋ถ€๋ถ„์˜ ์ฃผ์†Œ๊ฐ€ ๋‚˜์˜จ๋‹ค.
    • HTTP/1.1 - ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์˜ ๋ฒ„์ „์ด ๋‚˜์˜จ๋‹ค.

(์ค„๋ฐ”๊ฟˆ)

Request header

  • client์˜ IP์ฃผ์†Œ
  • ์‚ฌ์šฉ์–ธ์–ด : ko (Accept language)
  • content-type
  • ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด ..

(์ค„๋ฐ”๊ฟˆ)

Request body

  • Query String ์ •๋ณด

HTTP Response

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐ›๊ฒŒ ๋˜๋Š” HTTP Response๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

Response(Status) Line

  • HTTP/1.1 200 OK
    • ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ
    • ์ƒํƒœ์ฝ”๋“œ( ์ •ํ•ด์ ธ ์žˆ๋Š” ์ฝ”๋“œ๊ฐ’ ), 200(OK), 404(NOT FOUND), 403(Forbidden)...
    • ์„ค๋ช…

Response Header

  • ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์„ค๋ช…์ด ๋“ค์–ด๊ฐ„๋‹ค.
    • encoding
    • content-type : MINE ( Html? video? image? ... )
    • size
    • server ์„ค๋ช… (apache? tomcat? )
  • ๋‚ด๊ฐ€ ๋ณด๋‚ธ ์ •๋ณด๊ฐ€ ์ด๋ฏธ์ง€์ธ์ง€, ๋น„๋””์˜ค์ธ์ง€, html์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค.
  • ๋งŒ์•ฝ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•Œ ์ˆ˜ ์—†๋Š” ํ˜•ํƒœ๊ฐ€ ์˜จ๋‹ค๋ฉด, download ์ฐฝ์„ ๋„์–ด์ค€๋‹ค. (๋ธŒ๋ผ์šฐ์ €์˜ download ์ฐฝ์€ default)

Response body

  • server๊ฐ€ ์š”์ฒญํ•œ html์˜ body๋ถ€๋ถ„์ด ๋„˜์–ด์˜ค๊ฒŒ ๋œ๋‹ค.
  • ์ „์ฒด response ๋ฌธ์ž์—ด ๋ฐ›์•„์„œ body ๋ถ€๋ถ„์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด