μΉμ λμμ μμμΌ νλ μ΄μ
λ¬ΈμμΈ μΉνμ΄μ§λ₯Ό μΉμ΄ν리μΌμ΄μ
μΌλ‘ λ§λ€κ³ μΆλ€λ©΄
μλ²μ λ€μν μμ²μ νκ³ , λ°μ μλ΅ λ©μμ§λ₯Ό ν΄μνκ³ μΆλ€λ©΄
λ€νΈμν¬μμ μΌμ΄λ μλ¬λ₯Ό μκ³ λ¬Έμ λ₯Ό ν΄κ²°νκ³ μΆλ€λ©΄
μ΄ λ¬Έμλ₯Ό λ³΄κ³ λλ©΄
HTTPλΌλ μ½μκ³Ό μν μ½λλ₯Ό μ μ μλ€.
1. μΉ μλ²μ μΉ ν΄λΌμ΄μΈνΈ
μ°λ¦¬λ λ€μν κΈ°κΈ°μ ν¬ν¨λ λΈλΌμ°μ λ₯Ό ν΅ν΄ μ½κ² μΉμ κ²½ννκ³ μμ΅λλ€. μ°λ¦¬κ° μ
λ ₯ν νμλ€μ μ΄λ»κ² μμ²μ 보λ΄κ³ νλ©΄μ μΆλ ₯λ κΉμ? νμ¬μ μ»΄ν¨ν° μμ€ν
μλ ν΄λΌμ΄μΈνΈ-μλ² λͺ¨λΈμ ννκ° λ리 μ¬μ©λκ³ μμ΅λλ€. ν΄λΌμ΄μΈνΈμ μλ²λ κ°κ°Β clientμΒ serverλΌλ μλ―Έμ μμ΄κ° μ΄μμ
λλ€. μ¦ clientκ° μμ²(request)νλ©΄ serverκ° μλ΅(response)ν΄μ£Όλ ꡬ쑰μ
λλ€. μΉμλ²λ λ€νΈμν¬μμ 곡κ°νλ νμ΄νΌν
μ€νΈ(HTML νμμ νμΌ)λ₯Ό μκ³ , μΉ ν΄λΌμ΄μΈνΈκ° μμ²νλ HTML νμΌμ 건λ€μ£Όλ κ΅¬μ‘°λ‘ λμ΄μμ΅λλ€.
μ ν΄λΌμ΄μΈνΈμ μλ²λ‘ λλλ κ²μΌκΉ?
μΉμμ λ€μν μ½ν
μΈ λ₯Ό λΆνΉμ λ€μμ μ¬λμκ² κ³΅κ°νλ €λ©΄ μ½ν
μΈ λ₯Ό μ μ ν μ 리νκ³ κ΄λ¦¬νλ κ²μ΄ λ§€μ° μ€μν©λλ€. κ·Έλ°λ° μ΄ μ½ν
μΈ λ€μ΄ μ¬λ¬ κ³³μ λΆμ°λΌ μμΌλ©΄ μ΄λ€ λ¬Έμ κ° λ°μν κΉμ? μΉμ μ‘΄μ¬νλ λλΆλΆμ μ½ν
μΈ λ μ
λ°μ΄νΈκ° μ΄λ£¨μ΄μ§λλ€. κ·Έλ°λ° μ¬λ¬κ³³μ λΆμ°λΌ μμΌλ©΄ μ΄λμ μ μ₯λμ΄μλμ§ νμ
νκ³ λμμ κ°±μ νλ κ²μ΄ λ§€μ° μ΄λ ΅κ³ λΉμ©μ΄ λ§μ΄ λλ μμ
μ΄ λ©λλ€. μ¦ μΉ μλ²μ κ°μ΄ μ»΄ν¨ν° νλμ μ 보λ₯Ό λͺ¨μ λλ νΈμ΄ κ΄λ¦¬κ° μμν©λλ€.
λν μΉμ λΆνΉμ λ€μμ μ¬λμ΄ μ½ν
μΈ λ₯Ό μμ λ‘κ² μ΄λν μ μμ΄μΌ νλλ°, μ¬μ©μκ° μ½ν
μΈ λ₯Ό μ΄λνκΈ° μν΄ κ·Έ μ½ν
μΈ λ₯Ό 보κ΄νκ³ μ²λ¦¬νλ μΉ μλ²λ₯Ό μ§μ μ‘°μνλ κ²μ λΉνμ€μ μΈ μΌμ
λλ€. κ·Έλμ μ¬μ©μ μμ μλ PCλ₯Ό μΉ ν΄λΌμ΄μΈνΈλ‘, μ½ν
μΈ μμμ κ΄λ¦¬νκ³ μ²λ¦¬νλ μ»΄ν¨ν°λ₯Ό μΉμλ²λ‘ λ§λ€μ΄ μΈν°λ·μΌλ‘ μ°κ²°νλ κ²μ
λλ€.
κ·Έ 리μμ€(html νμΌμ) μ΄λμ μ°Ύμμ μ£Όλ κ²μΌκΉ? - URL
ν΄λΌμ΄μΈνΈ(μ μ )λ "μ΄λ μ΄λμ μλ μ΄ μ½ν
μΈ λ₯Ό μ½κ³ μΆλ€."λΌκ³ μ§μ ν λ°©λ²μ΄ νμν©λλ€. λ°λΌμΒ μΈν°λ·μμ μ½ν
μΈ λ₯Ό κ³ μ νκ² μ§μ νκΈ° μν ꡬ쑰κ°Β URL(Uniform Resource Locator)Β μΈ κ²μ
λλ€. μ¦ μ μ κ° μΉ λΈλΌμ°μ λ‘ νΉμ μ¬μ΄νΈμ μ μν λ μ£Όμμ°½μ μ
λ ₯νλ λ¬Έμμ΄μ΄ λ°λ‘ URLμ
λλ€. μλ₯Ό λ€μ΄ μ μ κ° μνμμ λμ μ°Ύλ νλ©΄μ μ΄μ©νλ€λ©΄ μλμ κ°μ λ°©μμΌλ‘ μμ²ν μ μμ κ²μ
λλ€.
2. HTTPλΌλ μ½μ
μ°λ¦¬λ URLμ μ΄μ©ν¨μΌλ‘μ¨ μΉμμ 곡κ°λ λ€μν μ½ν
μΈ λ₯Ό μ»μ μ μμ΅λλ€. νμ§λ§ μΉμ ꡬνμλ ν κ°μ§ λ λμ΄μΌ ν μ°μ΄ μμ΅λλ€. λ°λ‘ νμ΄νΌν
μ€νΈλ₯Ό λΉλ‘―ν μ½ν
μΈ λ₯Ό μ»΄ν¨ν°κ°Β μ΄λ»κ²Β μ‘μμ ν μ§μ λν κ²μ
λλ€. μΈν°λ·μλ λ€μν μ’
λ₯μ μ»΄ν¨ν°κ° μ°κ²°λΌμλλ°, μΉ μλ²μ μΉ ν΄λΌμ΄μΈνΈκ° ν΅μ νλ €λ©΄ μ΄λ»κ² μ 보λ₯Ό μ£Όκ³ λ°μμ§μ λν μ½μμ΄ νμν©λλ€. μ΄ μ½μμΒ ν΅μ νλ‘ν μ½(communication protocol)Β μ΄λΌκ³ ν©λλ€. μΉμ μ°½μμ λ²λμ€ λ¦¬ λ°μ¬λ HTML μ μ‘μ μ ν©ν νλ‘ν μ½μ μλ‘ κ³ μνμ΅λλ€. μ΄κ²μ΄ νμ¬λ λ리 μ¬μ©λκ³ μλΒ HTTP (HyperText Transfer Protocol)Β (opens new window)μ
λλ€. HTTPλ λ€λ₯Έ νλ‘ν μ½μ λΉν΄ λ§€μ° λ¨μν΄μ κ°λ¨ν ꡬνν μ μμ΄ μ½κ² λ리 μ΄μ©λμ΅λλ€.
2-1. HTTP μ½μ μκΈ°
1) URL(Uniform Resource Location)
β’
URI(Uniform Resource Identifier)λΌκ³ λ ν¨.
β’
URIκ° URLλ³΄λ€ λ μμ κ°λ
μ΄μ§λ§ νμ¬ νΌμ©ν΄μ μ¬μ©νκ³ μμ. κ°μ κ²μΌλ‘ μ΄ν΄ν΄λ 무방ν¨
β’
URLμ μ€ν΄(scheme), νΈμ€νΈλͺ
, κ²½λ‘λͺ
μΌλ‘ ꡬμ±λλ€. μ μμμ μ€ν΄μ http, νΈμ€νΈλͺ
μ wooteco.com, κ²½λ‘λͺ
μ webcontents/index.htmlμ΄ λλ€.
a) μ€ν΄(scheme)
μ€ν΄μ 리μμ€λ₯Ό νλνκΈ° μν λ°©λ²μ λνλ
λλ€. μΉ μ ν리μΌμ΄μ
μμλ λλΆλΆμ κ²½μ° HTTP νλ‘ν μ½μ μ¬μ©ν©λλ€. HTTP μ΄μΈμ λ€μκ³Ό κ°μ νλ‘ν μ½λ€μ΄ μμ΅λλ€.
β’
https: μνΈνλ http ν΅μ μ λνλ΄λ μ€ν΄
β’
mailto: μ΄λ©μΌμ μμ·¨μΈμ λνλ΄λ μ€ν΄
β’
ftp: FTP νλ‘ν μ½μ ν΅ν νμΌ νλμ λνλ΄λ μ€ν΄
β’
file: νμΌ μμ€ν
μμ νμΌμ΄λ λλ ν°λ¦¬λ₯Ό μ°Έμ‘°νκΈ° μν μ€ν΄
b) νΈμ€νΈλͺ
리μμ€κ° μ‘΄μ¬νλ νΈμ€νΈ(μ»΄ν¨ν°)μ μ΄λ¦μ λνλ
λλ€. μΈν°λ·μ λΉλ‘―ν μ»΄ν¨ν° λ€νΈμν¬μ μΈκ³μμ λ€νΈμν¬μ μ μλμ΄ λ€λ₯Έ μ»΄ν¨ν°λ‘λΆν° μꡬλ₯Ό λ°κ³ μ²λ¦¬ν κ²°κ³Όλ₯Ό λλλ €μ£Όλ μ»΄ν¨ν°λ₯Ό μΌλ°μ μΌλ‘ νΈμ€νΈ μ»΄ν¨ν°λΌκ³ ν©λλ€. νΈμ€νΈλͺ
μ νΈμ€νΈ μ»΄ν¨ν°μ μ΄λ¦μ κ°λ¦¬ν΅λλ€.
c) κ²½λ‘λͺ
νΈμ€νΈλͺ
μμ μ§μ λ μ»΄ν¨ν°μμ 리μμ€ μμΉλ₯Ό λνλ
λλ€.
www.wootecto.com/webcontents/index.html
μ κ²½λ‘μμλ webcontents νμμ μλ index.htmlμ΄λΌλ νμΌμ λνλ
λλ€. μ΄μ²λΌ URLμ μ΄μ©νμ¬ λλ©μΈ -> μ»΄ν¨ν° -> λλ ν°λ¦¬ -> νμΌλͺ
κ³Ό κ°μ΄ κ³μΈ΅μ μΌλ‘ 리μμ€μ μμΉλ₯Ό μ§μ ν μ μμ΄ μΈν°λ·μμμ 리μμ€μ μμΉλ₯Ό λνλΌ μ μμ΅λλ€.
2) HTTP Request Line
a) λ©μλ(scheme)
μμ²μ μ’
λ₯λ₯Ό λνλ
λλ€. μ¬κΈ°μλ GET, μ¦ βURIβμμ μ§μ ν μ 보λ₯Ό λ³΄λ΄ μ£ΌμΈμβλΌλ μλ―Έκ° λ©λλ€. λ©μλμλ κ·Έ λ°μλ λͺ κ°μ§κ° μ μλΌ μλλ°, μΉ λΈλΌμ°μ μμ μΉ μλ²λ‘ μ‘μ λλ μμ²μ λλΆλΆμ GET λ©μλμ λ°λ₯Έ μμ²μ
λλ€.
b) URI(Uniform Resource Identifier)
GETλ©μλλ λ¨μν βμ 보λ₯Ό μ£ΌμΈμβλΌλ μλ―Έμ λΆκ³Όνλ©°, URIλ '무μμ μνλκ°βλ₯Ό λνλ
λλ€. μΌλ¨μ URLκ³Ό URIλ κ±°μ κ°μ κ²μΌλ‘ μκ°ν΄λ 무방ν©λλ€.
c) HTTP λ²μ
λ²μ μ λ°λΌ μ΄μ©ν μ μλ λ©μλμ μ’
λ₯μ μμ² ν€λμ μ’
λ₯κ° λ¬λΌμ§λ―λ‘ μ΄λ€ λ²μ μ λ°λ₯Έ μμ²μΈμ§ μ μ₯ν κ²μ
λλ€. λλ² μ§Έ μ€ μ΄νμ λλ¨Έμ§ λΆλΆμ λ©μμ§ ν€λλΌκ³ νλ©°, μμ²μ λΆκ°μ μΈ μ 보λ₯Ό λνλ
λλ€
d) Accept
μΉ ν΄λΌμ΄μΈνΈκ° λ°μ μ μλ λ°μ΄ν°μ μ’
λ₯λ₯Ό νμν κ²μ
λλ€. λ°μ΄ν°μ μ’
λ₯λ Content-Typeμ΄λΌλ νμμΌλ‘ νμλλ©°, ν΄λΌμ΄μΈνΈμμ λ°μ μ μλ Content-Typeμ μ½€λ§λ‘ ꡬλΆν΄μ μ§μ ν©λλ€. μ΄λ κ² μ 보λ₯Ό ννν¨μΌλ‘μ¨ Aceept νλλ₯Ό μ°Έμ‘°νλ©΄ μΉ μλ²λ λΆνμν μ 보λ₯Ό μ‘μ νμ§ μμλ λ κ°λ₯μ±μ΄ μλ κ²μ
λλ€.
e) Accept-Language
μΉ ν΄λΌμ΄μΈνΈκ° λ°μ μ μλ μμ° μΈμ΄μ μ’
λ₯λ₯Ό λνλ
λλ€. μμ° μΈμ΄λ μ¬λμ΄ μ¬μ©νλ μΈμ΄λ₯Ό κ°λ¦¬ν΅λλ€. μ¬κΈ°μλ βen-usβλ‘ λμ΄ μμμΌλ‘ μμ΄λ₯Ό λνλ
λλ€.
f) User-Agent
μ΄μ© μ€μΈ μΉ λΈλΌμ°μ μ μ’
λ₯μ λ²μ μ λνλ
λλ€
g) Host
μμ²μ λ³΄λΈ κ³³μ νΈμ€νΈλͺ
κ³Ό ν¬νΈλ²νΈλ₯Ό μ§μ νλ€.
3) HTTP response
#a) μνλΌμΈ
HTTP μμ²κ³Ό λ§μ°¬κ°μ§λ‘ HTTP μλ΅μμλ 첫 λ²μ§Έ μ€μ΄ κ°μ₯ μ€μνλ©°, μ΄κ²μ μν λΌμΈμ΄λΌκ³ ν©λλ€. HTTP μν λΌμΈλ ꡬμ±μ κ°λ¨ν©λλ€. HTTP λ²μ κ³Ό μν μ½λ, μλ΅ κ΅¬λ¬ΈμΌλ‘ μΈ λΆλΆμΌλ‘ λλ©λλ€
HTTP λ²μ μ μμ²μμμ λ§μ°¬κ°μ§λ‘ μ¬μ©νλ νλ‘ν μ½μ λ²μ μ λνλ
λλ€. μ€μν κ²μ μν μ½λλ‘ μ΄ λΆλΆμ 보면 μμ²μ΄ μ±κ³΅νλμ§ μ€ν¨νλμ§ μ½κ² μ μ μμ΅λλ€. 200μ μμ²μ΄ μ±κ³΅ν΄ μ μμ μΈ μλ΅μ΄ λμμμμ λνλ΄λ μν μ½λμ
λλ€.
λνμ μΈ HTTP status code
β’
200Β - OK
β’
201Β - Created
β’
302Β - Found(HTTP 1.0)
β’
304Β - Not Modified
β’
401Β - Unauthorized
β’
404Β - Not Found
β’
500Β - Internal Server Error
β’
503Β - Service Unavailable
β’
status code λ¨μλ³ μλ―Έλ?
β¦
2XXΒ : μ±κ³΅. ν΄λΌμ΄μΈνΈκ° μμ²ν λμμ μμ νμ¬ μ΄ν΄νκ³ μΉλνμΌλ©° μ±κ³΅μ μΌλ‘ μ²λ¦¬
β¦
3XXΒ : 리λ€μ΄λ μ
μλ£. ν΄λΌμ΄μΈνΈλ μμ²μ λ§μΉκΈ° μν΄ μΆκ° λμμ΄ νμν¨.
β¦
4XXΒ : μμ² μ€λ₯. ν΄λΌμ΄μΈνΈμ μ€λ₯κ° μμ
β¦
5XXΒ : μλ² μ€λ₯. μλ²κ° μ ν¨ν μμ²μ λͺ
λ°±νκ² μννμ§ λͺ»νμ
b) λ©μμ§ ν€λ
μν λΌμΈμ μ΄μ΄μ λμ€λ κ²μ΄ λ©μμ§ ν€λλ‘ λ λ²μ§Έ μ€λΆν° λΉ μ€κΉμ§ κ³μλ©λλ€. λ©μμ§ ν€λλ HTTP μμ²μ λ©μμ§ ν€λμ κ°μ νμμΌλ‘, μλ΅μ κ΄ν λΆκ°μ μΈ μ λ³΄κ° λ€μ΄μμ΅λλ€.
c) λ©μμ§ λ³Έλ¬Έ
μΉ λΈλΌμ°μ λ λ©μμ§ λ³Έλ¬Έμ μλ HTMLμ ν΄μν΄ νλ©΄μ νμν©λλ€. HTMLμ ν
μ€νΈ νμμ΄λ―λ‘ μ°λ¦¬κ° μ½μ μ μλ νμμΌλ‘ λ©μμ§ λ³Έλ¬Έμ μ μ₯λΌ μμ΅λλ€. κ·Έλ¬λ GIFλ JPEG νμμ μ΄λ―Έμ§ νμΌμ μμ²νμ κ²½μ°μλ λ§μ°¬κ°μ§λ‘ κ·Έ λ°μ΄ν°κ° λ©μμ§ λ³Έλ¬Έμ λ€μ΄κ°λλ€.
4) HTTP method
μ£Όλ‘ λ§μ΄ μ¬μ©νλ λ©μλλΒ GETκ³ΌΒ POSTμ
λλ€.
GETμ Select μ μΈ μ±ν₯μ κ°μ§κ³ μμ΅λλ€. GETμ μλ²μμ μ΄λ€ λ°μ΄ν°λ₯Ό κ°μ Έμμ 보μ¬μ€λ€κ±°λ νλ μ©λμ΄μ§ μλ²μ κ°μ΄λ μν λ±μ λ°κΎΈμ§ μμ΅λλ€. κ²μνμ 리μ€νΈλΌλμ§ κΈ λ³΄κΈ° κΈ°λ₯ κ°μ κ²μ΄ μ΄μ ν΄λΉν©λλ€.
POSTλ μλ²μ κ°μ΄λ μνλ₯Ό λ°κΎΈκΈ° μν΄μ μ¬μ©ν©λλ€. κΈμ°κΈ°λ₯Ό νλ©΄ κΈμ λ΄μ©μ΄ λ°μ΄ν°λ² μ΄μ€μ μ μ₯μ΄ λκ³ μμ μ νλ©΄ λ°μ΄ν°λ² μ΄μ€κ°μ΄ μμ μ΄ λ©λλ€. μ΄λ΄ κ²½μ°μ POSTλ₯Ό μ¬μ©ν©λλ€.
μ 리
μΉμ λΆνΉμ λ€μμ μ¬λλ€μ΄ μ½ν
μΈ λ₯Ό μμ λ‘κ², ν¨μ¨μ μΌλ‘ μ κ·ΌνκΈ° μν΄ μλ²μ ν΄λΌμ΄μΈνΈλ‘ λλμλ€.
urlμ μΈν°λ·μμ μ½ν
μΈ λ₯Ό κ³ μ νκ² μ§μ νκΈ° μν ꡬ쑰μ΄λ€.
Β HTTPλ μλ²μ ν΄λΌμ΄μΈνΈκ° μ 보λ₯Ό μ£Όκ³ λ°κΈ° μν μ½μμΈ ν΅μ νλ‘ν μ½μ΄λ€.
urlμ 리μμ€λ₯Ό μ»κΈ° μν λ°©λ²μΈΒ μ€ν΄, 리μμ€κ° μ‘΄μ¬νλΒ νΈμ€νΈ(μ»΄ν¨ν°μ) μ΄λ¦, νΈμ€νΈ λͺ
μ μ§μ λ μ»΄ν¨ν°μμ 리μμ€ μμΉλ₯Ό λνλ΄λΒ κ²½λ‘λͺ
μΌλ‘ ꡬμ±λλ€.
HTTP Requestλ ν΄λΌμ΄μΈνΈκ° μλ²μ μ λ¬ν΄μ μλ²μ μ‘μ
μ΄ μΌμ΄λκ²λ νλ λ©μμ§μ΄κ³ κ·Έμ λν μ 보λ₯Ό λ΄κ³ μλ€.
HTTP Responseλ ν΄λΌμ΄μΈνΈμ μμ²μ λν μλ²μ λ΅λ³μ΄κ³ κ·Έμ λν μ 보λ₯Ό λ΄κ³ μλ€.
HTTP Methodλ ν΄λΌμ΄μΈνΈμ μλ² μ¬μ΄μ μ΄λ£¨μ΄μ§λ μμ²(Request)κ³Ό μλ΅(Response) λ°μ΄ν°λ₯Ό μ μ‘νλ λ°©μμ΄λ€.