December 28, 2020
λΈλΌμ°μ μ£Όμμ°½μ URL λ₯Ό μ λ ₯νμ λ λ²μ΄μ§λ μΌμ μ λ¦¬ν΄ λ³΄μλ€.
(μ) http://www.google.com/intl/ko_kr/about
μ¬κΈ°μ google λ·μ»΄ (Domain name) μ΄ μ€μ μ΄λ€ ip λ₯Ό κ°κ³ μλμ§ DNS μλ²μ IP λ₯Ό μμ²νλ©΄,
μλ²μμ μ«μλ‘ λ κ³ μ ν μμ΄νΌ μ£Όμλ₯Ό μ€λ€ (μ¬λ΄λ§, λλ κΈλ‘λ² ip).
ν΄λΉ ip λ‘ μ μν΄λ κ°μ νλ©΄μ λ³Ό μ μλ€.
google λ·μ»΄ λ€μλ λΌμ°ν μΈλ°, ν μλ²μμλ μ λ κ² κ°λ¦ΌκΈΈμ΄ μλ κ±°λ€.
λν μΌν μ£Όμ κ°μ λλμΌλ‘ μκ°νλ©΄ μ½λ€. (λͺ μΈ΅μΌλ‘ κ°λ©΄ λ‘λΉ, 17μΈ΅μ κ°λ©΄ μ¬λ¬΄μ€ λ±λ±..)
μ΄κ±°λ‘λ μ μκ°λ₯ - κΈλ‘λ² IP μ
πΌλ¨μνκ² μ μ νμΌλ§ μ 곡νλ κ²½μ° λ€μκ³Ό κ°μ΄ μ‘°ν
(URL): μΉμλ²λ£¨νΈ/intl/ko_kr/about/index.html
πΌμλ²κ° λΉμ¦λμ€ λ‘μ§μ μ€ννλλ‘ μμ²ν μλ μμ
κ·Έ λ»μ μΉ μλ²μμ ν΄λΌμ΄μΈνΈκ° μμ²ν 리μμ€λ₯Ό μ°Ύμ μ μλ€!!
μ¦, 404 NOT FOUND 리ν΄!
μλ²μ ν΄λΌμ΄μΈνΈκ° μ£Όλ‘ HTML λ±μ λ¬Έμλ₯Ό μ£Όκ³ λ°λ λ° μ¬μ©νλ νλ‘ν μ½ μ΄λ€.
μ£Όλ‘ TCP/UDP 80λ² ν¬νΈλ₯Ό μ¬μ©νλ€κ³ νλ€.
μμ²κ³Ό μλ΅μ Start/Status Line, Header κ·Έλ¦¬κ³ Body λ‘ μ΄λ£¨μ΄μ Έ μλ€.
http message mdn μΌλ‘ κ²μ ν΄λ³΄μλ€.
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
HTTP request μ ν€λλ μ΄λ€ λͺ¨μμΌλ‘ 보λ΄μ§λμ§ νμΈν΄ λ³Έ μ΄λ―Έμ§λ μλμ κ°λ€.
HTTP response μμ ν€λλ μ΄λ€ λͺ¨μμΌλ‘ λ°μμ€λμ§ μλ κ·Έλ¦ΌμΌλ‘ 보μ.
첫λ²μ§Έ κ·Έλ¦Ό 맨 λ°μ μ€μ μ μΈ μ»¨ν μΈ κ° λ΄κ²¨μ§λ€. (payload == body)
μ΄μ ν΄λΌμ΄μΈνΈκ° λ°μμ νλ©΄μΌλ‘ νμΈνλ€.
κ°λ°μ λꡬμ network νμ λ€μ΄κ°μ νμΈν΄ 보μλ€. μ΄λ€ λͺ¨μμΈμ§! μ΄λ€ μμ²μ΄ μ΄λ£¨μ΄ μ§κ³ μλμ§!
chatterbox λ₯Ό μ΄μ΄ 보λ νμΈμ κ±°μ³ λ³΄μλ€.
URI ? URL μ΄ λ¨μν νμΌ μ²λ¦¬ λΏλ§ μλλΌ λΉμ¦λμ€ λ‘μ§λ μ²λ¦¬ν΄ μ£ΌκΈ° λλ¬Έμ Identifier λΌκ³ ν΄μ μ λ κ² λΆλ₯΄κ² λμλ€κ³ ν¨.
ν΅ν© μμ μλ³μ URIλ Uniform Resource Identifier μ μ½μμ΄λ©° μΈν°λ·μ μλ μμμ λνλ΄λ μ μΌν μ£Όμμ΄λ€.
URI μ μ‘΄μ¬λ μΈν°λ·μμ μꡬλλ 기본쑰건 μΌλ‘μ μΈν°λ· νλ‘ν μ½μ νμ λΆμ΄ λ€λλ€. URI λ μΈν°λ· μμ μμμ μλ³νκΈ° μν λ¬Έμμ΄ μ λλ‘ μκ°ν μ μλ€.
μ¦, λ€νΈμν¬ μμμ μμμ΄ μ΄λ μλμ§λ₯Ό μλ €μ£ΌκΈ° μν κ·μ½μ΄λ€. μ΄λ μΈν°λ· μμ μμ μμΉλΌκ³ μκ°νλ©΄ λλ€.
URI κ° κ°μ₯ ν° μμκ°λ μ΄κ³ μ΄κ²μ νμ κ°λ μΌλ‘ URL κ³Ό URN μ΄ μλ€.
URLμ Uniform Resource Locator μ μ½μ μ΄κ³ URL μ URI μ ν ννλ‘,
URI λ URL μ ν¬ν¨νλ κ°λ μ΄λ€.
https://dev-seolleung2.netlify.app/ μ΄λΌλ μ£Όμλ URL μ΄λ©΄μ URI μ΄λ€.
https://dev-seolleung2.netlify.app/development/
μ κ°μ νμμ development λΌλ μΈν°λ·μμ μμ μμΉλ₯Ό μλ―Ένλ€.
μ΄λν URL μ΄λ©΄μ URI μ΄λ€.
https://192.168.3.x.x/category/index.html μ΄λΌλ μ£Όμλ 192 λ‘ μμνλ νΈμ€νΈ μ£Όμ νμμ category μλμ index.html μ΄λΌλ μμμ μμΉλ₯Ό κ°λ¦¬ν€κ³ μμΌλ―λ‘ URL μ΄λ©΄μ URI μ΄λ€.
https://dev-seolleung2.netlify.app/development/111
μ μ£Όμλ μ’ λ€λ₯΄κ² λ³Ό μ μλ€. μ¬κΈ°μ URL μ https://dev-seolleung2.netlify.app/development κΉμ§ μ΄λ€.
λ΄κ° μνλ μ 보κΉμ§ λλ¬νκΈ° μν΄μλ 111 μ΄λΌλ μλ³μ (Identifier) κ° νμν κ²μ΄λ€.
μ¦, https://dev-seolleung2.netlify.app/development/111 μ μ£Όμλ URI μ§λ§, URL μ μλκ² λλ€.
https://developer.mozilla.org/ko/docs/Web/HTTP/Status
200 - μμ² μ±κ³΅
304 - μμ²μ λν μλ΅μ΄ μμ λμ§ μμ (Cache)
403 - 컨ν μΈ μ μ κ·Όν κΆν μμ
404 - μμ²λ°μ 리μμ€λ₯Ό μ¬μ©ν μ μμ
500 - μλ²κ° μ²λ¦¬ν μ μλ μμ²
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
GET - νΉμ 리μμ€λ₯Ό κ°μ Έμ€λλ‘ μμ²
POST - λ°μ΄ν°λ₯Ό μλ²λ‘ μ μΆνλ μ©λλ‘ μ¬μ©νλ©°, μλ² μνμ λ³νλ₯Ό μΌμΌν΄
PUT - POST μ λΉμ·νλ, μ°μμ μΈ μμ²μμλ κ°μ ν¨κ³Όλ₯Ό κ°μ Έμ΄. κΈ°μ‘΄ λ°μ΄ν°λ₯Ό κ΅μ²΄νλ μ©λλ‘ μ°μΌ μ μμ (UPDATE)
DELETE - 리μμ€μ μμ λ₯Ό μμ²ν λ μ¬μ©
λ©μλκ° PATCH OPTIONS λ μκΈ΄νμ§λ§ μΌλ¨.. ν¨μ°
GET μμ²μ μ£Όμλ§ μ§μ ν΄μ£Όλ©΄ (νΈμ€νΈμ url μ λ· μͺ½ λΆλΆμ μ΄μ©ν΄μ κ²½λ‘λ₯Ό ν΅ν΄ λΌμ°ν μ΄μ©ν΄μ λ°μμ΄) μμ²μ λ£μ μ μμ§λ§,
POST μμ²μ λ£μ΄μ€ λ΄μ©λ€μ΄ νμνλκΉ (μ¬μ©μ μ½λ©νΈ λ±) Payload κ° μλ€.
μλ‘,
{
username: βκ°κ±΄λ§β,
text:βλμ108κ³λ¨μ½€λ³΄λμλΉμ¬μ΄ μλ€β,
roomname:βλν€μ§±β
}
request λ₯Ό λ³΄λΌ λ λ³΄λΌ body(payload) μ νμ μ΄ μ¦ Content-Type μ λͺ μν΄ μ€λ€.
μ£Όλ‘ λ§μ΄ μ°μ΄λκ² application/json μ΄λ€.
κ·ΈλΌ μ΄μ μλμ Payload λ₯Ό,
{
username: βκ°κ±΄λ§β,
text:βλμ108κ³λ¨μ½€λ³΄λμλΉμ¬μ΄ μλ€β,
roomname:βλν€μ§±β
}
json ν ν΄μ μλ²λ‘ 보λ΄μ§ κ²μ΄λ€.
μλ²μ μ΄λ€ λ°μ΄ν°λ₯Ό μ λ°μ΄νΈ νλ κ²½μ° (POST μ²λΌ) μλ payload μ κ°μ΄ μμ²μ 보λΈλ€!