"HyperText Trasfer Protocol"
μλ²μ ν΄λΌμ΄μΈνΈ κ°μ ν΅μ μμ μμμ 곡μ νκΈ° μν΄ μ¬μ©λλ νλ‘ν μ½.
λΉμ°κ²°μ±κ³Ό 무μνμ νΉμ±μ κ°μ§λ€.
μλ²λ ν΄λΌμ΄μΈνΈ μμ²μ λ°κ³ μλ΅ μ ν΄λΌμ΄μΈνΈμ μμ²μ λ°λ‘ λλλ€. λν ν΄λΌμ΄μΈνΈμ μ°κ²° μνλ₯Ό κΈ°μ΅νμ§ μλλ€.
κΈ°μ‘΄μλ HTML λ¬Έμλ₯Ό κ΅ννμ§λ§, μ΄μ λ λ€μν λ―Έλμ΄ λ¦¬μμ€λ₯Ό μ£Όκ³ λ°λ ννλ‘ λ°μ
πHTTP νλ‘ν μ½μ΄ λΉμ°κ²°μ±κ³Ό 무μνμΈ μ΄μ λ?
GET λ°©μμ μμ²νλ λ°μ΄ν°κ° HTTP Request Messageμ Header λΆλΆμ URLμ΄ λ΄κ²¨μ μ μ‘λλ€.
localhost:8080/login?id=dbswns1101 => ? λ€μ λ°μ΄ν°κ° λΆμ΄ request λλ€.
μμ κ°μ μμ² νμμ μΏΌλμ€νΈλ§ ννλΌκ³ νλ€.
μΏΌλμ€νΈλ§μ μ μ‘νκ³ μ νλ λ°μ΄ν°κ° URLμ ? λ€μμ μ€λ©° νλΌλ―Έν°μ μ΄λ¦ κ°μ΄ =λ‘ μ°κ²°λκ³ , κ° νλΌλ―Έν°λ &λ‘ κ΅¬λΆλλ€.
μ΄ λ°©μμ 보λ΄λ λ°μ΄ν°κ° url κ³΅κ° νμ μ΄λΌ λ°μ΄ν° ν¬κΈ°κ° μ νμ .
λν 보μμ΄ νμν λ°μ΄ν°λ λ°μ΄ν°κ° κ·Έλλ‘ URLμ λ
ΈμΆλλ―λ‘ GET λ°©μμ΄ μ μ νμ§ μλ€.
POST λ°©μμ μμ²νλ λ°μ΄ν°κ° HTTP Request Messageμ Body λΆλΆμ λ°μ΄ν°κ° λ΄κ²¨μ μ μ‘λλ€.
ν
μ€νΈ ννμ λ°μ΄ν° -> application/json νμ
λ°μ΄λ리 λ°μ΄ν° -> mertipart/form-data νμ
//μ£Όλ‘ νμΌ μ
λ‘λμ μ¬μ©λ¨
λ°μ΄ν° ν¬κΈ°κ° GET λ°©μλ³΄λ€ ν¬κ³ 보μλ©΄μμ λ«λ€. (νμ§λ§ μνΈν νμ§ μλ μ΄μ κ³ λ§κ³ λ§νλ€)
μ΄μ GET κ³Ό POSTκ° μ΄λμ μ μ©λλμ§ μμλ΄μΌ κ·Έ μ°¨μ΄λ₯Ό κ·Ήλͺ
νκ² μ΄ν΄ν μ μλ€.
GETμ λ°μ΄ν°λ₯Ό μ‘°ννκΈ° μν΄ μ¬μ©λλ λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό ν€λ λΆλΆμ URLμ΄ λ΄κ²¨μ μ μ‘λλ€GETμ κ°μ Έμ€λ κ². μλ²μμ μ΄λ€ λ°μ΄ν°λ₯Ό κ°μ Έμ 보μ¬μ£Όκ±°λ νλ μ©λμ§ μλ²μ κ°μ΄λ μν λ±μ λ³κ²½νμ§ μλλ€. POSTλ λ°μ΄ν°λ₯Ό μΆκ°, μμ νκΈ° μν΄ λ°μ΄ν°κ° body λΆλΆμ μΆκ°λμ΄ μ μ‘λλ€.POSTλ μλ²μ μνλ κ°μ λ³κ²½ λλ μΆκ°νκΈ° μν΄ μ¬μ©λλ€.GET λ°©μμ μμ²μ λΈλΌμ°μ μ μν΄ μΊμ±λ μ μλ€.
μλ₯Όλ€λ©΄ localhost:8080/posts-all
λ‘ μ 체 κ²μκΈμ μ‘°ννλ μμ²μ νλ©΄ ν΄λΉ μλ΅μ λΈλΌμ°μ μ μν΄ μΊμ±λλ€.
λ°λΌμ λ€μ μλ²μ μμ² μ μλ²μ μ¬μμ² νμ§μκ³ μΊμλ λ°μ΄ν°λ₯Ό μ‘°νν μ μλ€.
λ°λΌμ λ°μ΄ν° ν¬κΈ°κ° μκ³ λ³΄μ λ¬Έμ κ° μλ€λ μ΄μ λ‘POSTλ°©μμΌλ‘ μμ²ν κ²μGETλ°©μμΌλ‘ μμ²νλ©΄ κΈ°μ‘΄μ μΊμ±λ λ°μ΄ν°κ° μλ΅λ κ°λ₯μ±μ΄ μλ€.
λ°λΌμ λͺ©μ μ λ§λ κΈ°μ μ μ¬μ©ν΄μΌ νλ κ²μ΄λ€.
PUT: λ°μ΄ν° λ³κ²½(ν΄λΉ λ°μ΄ν°κ° μμΌλ©΄ μμ±)PATCH : μΌλΆ λ°μ΄ν°λ§ λ³κ²½DELETE : λ°μ΄ν° μμ λ©±λ±μ±μ΄λ μ¬λ¬λ² μνν΄λ κ²°κ³Όκ° κ°μμ μλ―Ένλ€.
HTTP λ©μλμμ GET PUT DELETEλ κ°μ κ²½λ‘λ‘ μ¬λ¬ λ² νΈμΆν΄λ κ²°κ³Όκ° κ°λ€.
POSTλ λ§€ νΈμΆλ§λ€ μλ‘μ΄ λ¦¬μμ€λ₯Ό μμ±νκΈ° μν΄ μ¬μ©λ¨.
κ°μ POST μμ²μ μ¬λ¬ λ² λ³΄λ΄λ©΄, μλ²λ κ°κ° μμ²μ λμνλ μλ‘μ΄ λ¦¬μμ€κ° μ¬λ¬ κ° μμ±λλ€. λ°λΌμ POSTλ λΉλ©±λ±ν νΉμ±μ κ°μ§.
ex) κ²μλ¬Ό μμ±νλ POST μ¬λ¬ λ² λ³΄λ΄λ©΄, λμΌν λ΄μ©μ κ²μλ¬Όμ΄ μ¬λ¬ κ° μμ±λ μ μλ€
λ°λ©΄, PUTμ νΉμ μ¬μ©μμ μ 보λ₯Ό μ
λ°μ΄νΈ νλ€λ©΄. ν΄λΉ μ¬μ©μμ λ°μ΄ν°λ₯Ό μλ‘μ΄ λ°μ΄ν°λ‘ λ체νλ€.
κ°μ λ°μ΄ν°λ‘ PUT μμ²μ μ¬λ¬ λ² νλλΌλ, μ¬μ©μμ μ 보λ 첫 λ²μ§Έ μμ² μ΄ν λ³νμ§ μλλ€.
PATCH, PUT λλ€ λ°μ΄ν° μμ μ μν methodμ΄λ€.
λκ°μ§ μ°¨μ΄μ μ
μλ₯Ό λ€μ΄, PUT μμ² μ μμ² μΌλΆλΆλ§ λ³΄λΈ κ²½μ° λλ¨Έμ§λ defaultκ°μΌλ‘ μμ λλκ² μμΉμ΄λ€. λ°λΌμ λ°λμ§ μλ μμ±λ λͺ¨λ 보λ΄μΌν¨.
κ·Έλ¬λ PATCHλ₯Ό μ΄μ©νμ¬ μΌλΆλΆλ§ λ³΄λΈ κ²½μ°.
μλ‘κ² λ°λ λΆλΆλ§ λ°μλλ©° λλ¨Έμ§λ κΈ°μ‘΄μ λ°μ΄ν°κ° μ μ§λλ€.
λ°λΌμ, μμμ μΌλΆλ₯Ό μμ ν λλ PATCHλ₯Ό μ 체μ μΈ μμ μ΄ νμν λλ PUTμ μ΄μ©νλ κ²μ΄ μ μ νλ€.