Network
π[Network] HTTP, API, URL, 쿼리, λ°λ
1οΈβ£ HTTPλ 무μμΈκ°μ?
-
HTTP(Hypertext Transfer Protocol) λ WWW(World Wide Web)μμ μ 보λ₯Ό μ£Όκ³ λ°κΈ° μν κΈ°λ³Έμ μΈ νλ‘ν μ½μ
λλ€.
- μΉ λΈλΌμ°μ μ μΉ μλ² κ°μ ν΅μ μ κ°λ₯νκ² νλ κ·μ½μΌλ‘, ν΄λΌμ΄μΈνΈ(Client, μ¬μ©μμ μΉ λΈλΌμ°μ )κ° μλ²(Server)μ μμ²(Request)μ 보λ΄κ³ , μλ²κ° μ΄μ λν μλ΅(Response)μ 보λ΄λ λ°©μμΌλ‘ λμν©λλ€.
1. HTTPμ μ£Όμ νΉμ§.
-
1. ν
μ€νΈ κΈ°λ° νλ‘ν μ½.
- HTTPλ μ¬λμ΄ μ½μ μ μλ ν
μ€νΈ νμμΌλ‘ μμ²κ³Ό μλ΅μ μ£Όκ³ λ°μ΅λλ€.
- μμ² λ©μμ§μλ ν΄λΌμ΄μΈνΈκ° μλ²μ μꡬνλ μμ
μ΄, μλ΅ λ©μμ§μλ μλ²κ° μμ²μ λν΄ μ²λ¦¬ν κ²°κ³Όκ° ν¬ν¨λ©λλ€.
-
2. λΉμ°κ²°μ±.
- HTTPλ λΉμ°κ²°μ± νλ‘ν μ½μ
λλ€.
- μ¦, ν΄λΌμ΄μΈνΈμ μλ² κ°μ μμ²μ μ²λ¦¬ν λλ§ μ°κ²°μ λ§Ίκ³ , μλ΅μ΄ μλ£λλ©΄ μ°κ²°μ λμ΅λλ€.
- μ΄ν μμ²μ΄ μμ λλ§λ€ μλ‘μ΄ μ°κ²°μ λ§Ίμ΅λλ€.
- μ΄λ₯Ό ν΅ν΄ μμ μ¬μ©μ μ€μΌ μ μμ§λ§, μ§μμ μΈ μ°κ²°μ΄ νμν μ ν리μΌμ΄μ
μμλ νκ³κ° μμ΅λλ€.
-
3. 무μνμ±.
- HTTPλ μνλ₯Ό μ μ§νμ§ μλ νλ‘ν μ½μ
λλ€.
- μ¦, μλ²λ ν΄λΌμ΄μΈνΈμ μμ²μ κ°κ° λ
립μ μΌλ‘ μ²λ¦¬νλ©°, μ΄μ μμ²μ μνλ μ 보λ₯Ό κΈ°μ΅νμ§ μμ΅λλ€.
- μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ μΏ ν€(cookie), μΈμ
(session), JWT(Json Web Token)λ±μ μ¬μ©νμ¬ μν μ 보λ₯Ό μ μ§ν©λλ€.
-
4. ν¬νΈ λ²νΈ.
- HTTPλ κΈ°λ³Έμ μΌλ‘ 80λ² ν¬νΈ λ₯Ό μ¬μ©νλ©°, 보μμ΄ κ°νλ HTTPSλ 443λ² ν¬νΈ λ₯Ό μ¬μ©ν©λλ€.
2. HTTPμ λμ λ°©μ.
- HTTPλ ν΄λΌμ΄μΈνΈ-μλ² κ΅¬μ‘°λ‘ λμνλ©°, μ£Όλ‘ μΉ λΈλΌμ°μ κ° ν΄λΌμ΄μΈνΈ μν μ νκ³ , μΉ μλ²κ° μλ² μν μ ν©λλ€.
- κΈ°λ³Έμ μΈ μμ²κ³Ό μλ΅ κ³Όμ μ λ€μκ³Ό κ°μ΅λλ€.
-
1. ν΄λΌμ΄μΈνΈ μμ².
- μ¬μ©μκ° μΉ λΈλΌμ°μ μ
http://example.com
κ³Ό κ°μ URLμ μ
λ ₯νλ©΄, ν΄λΌμ΄μΈνΈ(μΉ λΈλΌμ°μ )κ° μλ²μ HTTP μμ²μ 보λ
λλ€.
- μ΄ μμ²μ μΉ νμ΄μ§λ μ΄λ―Έμ§ νμΌκ³Ό κ°μ μμμ μꡬνλ λ΄μ©μ
λλ€.
-
2. μλ² μλ΅.
- μλ²λ ν΄λΌμ΄μΈνΈμ μμ²μ μ²λ¦¬ν ν, μμ²ν μμ(μ: HTML λ¬Έμ)μ HTTP μλ΅μΌλ‘ λλ €μ€λλ€.
-
3. μΉ νμ΄μ§ νμ.
- ν΄λΌμ΄μΈνΈλ λ°μ μλ΅μ ν΄μνμ¬ μΉ νμ΄μ§λ₯Ό λ λλ§νκ±°λ μμμ νμν©λλ€.
3. HTTP μμ² λ©μμ§ κ΅¬μ‘°.
- HTTP μμ² λ©μμ§λ λ€μκ³Ό κ°μ ꡬ쑰λ₯Ό κ°μ§λλ€.
-
1. μμ² λΌμΈ(Request Line)
-
λ©μλ(Method) : ν΄λΌμ΄μΈνΈκ° μλ²μ μμ²νλ μμ
μ λνλ
λλ€.
-
GET
: μλ²λ‘λΆν° λ°μ΄ν°λ₯Ό μμ².
-
POST
: μλ²μ λ°μ΄ν°λ₯Ό μ μ‘.
-
PUT
: μλ²μ λ°μ΄ν°λ₯Ό μ
λ°μ΄νΈ.
-
DELETE
: μλ²μμ λ°μ΄ν°λ₯Ό μμ .
-
URL : μμ²νλ €λ μμμ μμΉλ₯Ό λνλ
λλ€.
-
HTTP λ²μ : μ¬μ© μ€μΈ HTTP νλ‘ν μ½μ λ²μ μ 보μ
λλ€.(μ: HTTP/1.1)
- μ:
GET /index.html HTTP/1.1
-
2. ν€λ(Header)
- μμ²μ λν μΆκ° μ 보λ₯Ό μ 곡ν©λλ€.
- μλ₯Ό λ€μ΄,
User-Agent
ν€λλ μμ²μ 보λ΄λ ν΄λΌμ΄μΈνΈ μ 보λ₯Ό λ΄κ³ μμΌλ©°, Accept
ν€λλ ν΄λΌμ΄μΈνΈκ° μλ½ν μ μλ λ°μ΄ν° νμμ μ§μ ν©λλ€.
-
3. λ³Έλ¬Έ(Body)
-
POST
λ PUT
κ³Ό κ°μ λ©μλλ₯Ό μ¬μ©ν λ ν΄λΌμ΄μΈνΈκ° μλ²λ‘ μ μ‘ν λ°μ΄ν°λ₯Ό ν¬ν¨ν©λλ€.
-
GET
μμ²μμλ λ³Έλ¬Έμ΄ μλ κ²½μ°κ° λλΆλΆμ
λλ€.
4. HTTP μλ΅ λ©μμ§ κ΅¬μ‘°.
-
1. μν λΌμΈ(Status Line)
-
HTTP λ²μ
- μλ²κ° μ¬μ©νλ HTTP λ²μ μ
λλ€.
-
μν μ½λ(Status Code)
- μμ² μ²λ¦¬ κ²°κ³Όλ₯Ό λνλ΄λ μ«μ μ½λμ
λλ€.
-
μν μ€λͺ
(Status Text)
- μν μ½λμ λν μ€λͺ
μ
λλ€.
- μ:
HTTP/1.1 200 OK
-
2. ν€λ(Header)
- μλ΅μ λν λΆκ° μ 보λ₯Ό μ 곡ν©λλ€.
- μλ₯Ό λ€μ΄,
Content-Type
ν€λλ μλ΅ λ³Έλ¬Έμ λ°μ΄ν° νμμ μ§μ νλ©°, Content-Length
λ μλ΅ λ°μ΄ν°μ κΈΈμ΄λ₯Ό λνλ
λλ€.
-
3. λ³Έλ¬Έ(Body)
- μλ²κ° ν΄λΌμ΄μΈνΈμκ² λ³΄λ΄λ μ€μ λ°μ΄ν°κ° ν¬ν¨λ©λλ€.
- μλ₯Ό λ€μ΄, HTML λ¬Έμ, μ΄λ―Έμ§, JSON λ°μ΄ν° λ±μ΄ λ³Έλ¬Έμ λ΄κΈΈ μ μμ΅λλ€.
5. HTTP μν μ½λ.
- HTTP μλ΅μμ μν μ½λλ ν΄λΌμ΄μΈνΈκ° λ³΄λΈ μμ²μ μ²λ¦¬ κ²°κ³Όλ₯Ό λνλ
λλ€. μ£Όμ μν μ½λλ λ€μκ³Ό κ°μ΅λλ€.
-
1xx (μ 보) : μμ²μ΄ μμ λμ΄ μ²λ¦¬ μ€μ
μ λνλ
λλ€.
-
2xx (μ±κ³΅) : μμ²μ΄ μ±κ³΅μ μΌλ‘ μ²λ¦¬λμμμ λνλ
λλ€.
-
200 OK : μμ²μ΄ μ±κ³΅μ μΌλ‘ μ²λ¦¬λμμ.
-
3xx (리λ€μ΄λ μ
) : μμ²ν μμμ΄ μꡬμ μΌλ‘ λ€λ₯Έ μμΉλ‘ μ΄λνμμ λνλ
λλ€.
-
301 Moved Permanently : μμ²ν μμμ΄ μꡬμ μΌλ‘ λ€λ₯Έ μμΉλ‘ μ΄λν¨.
-
302 Found : μμ²ν μμμ΄ μΌμμ μΌλ‘ λ€λ₯Έ μμΉλ‘ μ΄λν¨.
-
4xx(ν΄λΌμ΄μΈνΈ μ€λ₯) : ν΄λΌμ΄μΈνΈμ μμ²μ μ€λ₯κ° μμμ λνλ
λλ€.
-
400 Bad Request : μλͺ»λ μμ².
-
404 Not Found : μμ²ν μμμ΄ μ‘΄μ¬νμ§ μμ.
-
5xx(μλ² μ€λ₯) : μλ²μμ μμ²μ μ²λ¦¬νλ μ€μ μ€λ₯κ° λ°μνμμ λνλ
λλ€.
-
500 Internal Server Error : μλ²μμ λ°μν μΌλ°μ μΈ μ€λ₯.
-
503 Service Unavailable : μλ²κ° νμ¬ μμ²μ μ²λ¦¬ν μ μμ.
6. HTTPμ νκ³μ HTTPS
- HTTPλ κΈ°λ³Έμ μΌλ‘ μνΈνλμ§ μμ νλ‘ν μ½ μ
λλ€.
- λ°λΌμ, λ°μ΄ν°κ° μ€κ°μ κ°λ‘μ±κΈ°(μ€λν) λΉν μ μμΌλ©°, λ―Όκ°ν μ λ³΄κ° λ³΄νΈλμ§ μμ΅λλ€.
- μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ HTTPS(Hypertext Transfer Protocol Secure) κ° λμ
λμμ΅λλ€.
- HTTPSλ HTTPμ SSL/TLS μνΈν κ³μΈ΅ μ μΆκ°νμ¬ λ°μ΄ν°λ₯Ό μμ νκ² μ£Όκ³ λ°μ μ μλλ‘ ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ μΉ μ¬μ΄νΈμ μ¬μ©μ κ°μ ν΅μ μ΄ λ³΄νΈλ©λλ€.
7. μμ½.
- HTTPλ μΉμμ ν΄λΌμ΄μΈνΈ(μ£Όλ‘ μΉ λΈλΌμ°μ )μ μλ² κ°μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°κΈ° μν νλ‘ν μ½λ‘, μμ²(Request)-μλ΅(Response) κ΅¬μ‘°λ‘ λμνλ©° ν
μ€νΈ κΈ°λ°μ λ©μμ§λ₯Ό μ£Όκ³ λ°μ΅λλ€.
- λΉμ°κ²°μ±κ³Ό 무μνμ±μ κ°μ§λ©°, μν μ½λμ ν€λλ₯Ό ν΅ν΄ μμ² λ° μλ΅μ λν μ 보λ₯Ό μ 곡νμ¬ μΉ μμμμ ν΅μ μ μ§μν©λλ€.
- HTTPSλ HTTPμ 보μ κ°νλ₯Ό μν΄ λμ
λ λ²μ μ
λλ€.
2οΈβ£ API(Application Programming Interface)
- API(Application Programming Interface)λ μμ© νλ‘κ·Έλ¨ κ°μ μνΈμμ©ν μ μλλ‘ μ μλ κ·μΉκ³Ό λꡬμ λͺ¨μμ
λλ€.
- μ¦, APIλ μννΈμ¨μ΄ μ ν리μΌμ΄μ
μ΄ μλ‘ ν΅μ νκ³ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°κΈ° μν μΈν°νμ΄μ€λ₯Ό μ 곡ν©λλ€.
- APIλ₯Ό μ¬μ©νλ©΄ ν νλ‘κ·Έλ¨μ΄ λ€λ₯Έ νλ‘κ·Έλ¨μ κΈ°λ₯μ νμ©νκ±°λ λ°μ΄ν°λ₯Ό κ°μ Έμ¬ μ μκ² λ©λλ€.
1. APIμ μ£Όμ κ°λ
.
-
1. μΈν°νμ΄μ€.
- APIλ λ μννΈμ¨μ΄ κ°μ μ€κ° μν μ νμ¬, μλ‘ λ€λ₯Έ μμ€ν
μ΄λ μ ν리μΌμ΄μ
μ΄ μΌμ ν κ·μΉ μ λ°λΌ λ°μ΄ν°λ₯Ό κ΅νν μ μκ² ν΄μ€λλ€.
- μ΄λ₯Ό ν΅ν΄ κ° μμ€ν
μ΄ μνΈμμ©νλ©΄μλ λ
립μ±μ μ μ§ν μ μμ΅λλ€.
-
2. νμ€νλ κ·μΉ.
- APIλ κ°λ°μλ€μ΄ νΉμ κΈ°λ₯μ μ½κ² μ¬μ©ν μ μλλ‘ νμ€νλ λ°©μ μΌλ‘ μ 곡λ©λλ€.
- μλ₯Ό λ€μ΄, μΉ APIλ HTTP μμ²μ ν΅ν΄ λ°μ΄ν°λ₯Ό μ μ‘νκ±°λ λ°λ κ·μΉμ λ°λ¦
λλ€.
-
3. μΆμν.
- APIλ λ΄λΆ ꡬν λ°©μμ μ¨κΈ°κ³ , μΈλΆμμλ λ¨μν μΈν°νμ΄μ€λ§ μ 곡νμ¬ λ³΅μ‘ν μμ
μ μ½κ² μνν μ μλλ‘ ν©λλ€.
- μλ₯Ό λ€μ΄, Google Maps APIλ₯Ό μ¬μ©νλ©΄ 볡μ‘ν μ§λ λ°μ΄ν° μ²λ¦¬ κ³Όμ μ λͺ°λΌλ κ°λ¨ν λͺ
λ Ήμ ν΅ν΄ μ§λ μ 보λ₯Ό νμ©ν μ μμ΅λλ€.
2. APIμ μ ν.
-
1. μΉ API
-
REST API(Representational State Transfer API)
- μ£Όλ‘ HTTP νλ‘ν μ½μ ν΅ν΄ λ°μ΄ν°λ₯Ό κ΅ννλ μΉ APIμ
λλ€. RESTful APIλ URLμ ν΅ν΄ μμ(Resource)μ μλ³νκ³ , HTTP λ©μλ(GET, POST, PUT, DELETE λ±)λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ²λ¦¬ν©λλ€.
-
SOAP API(Simple Object Access Protocol)
- XML κΈ°λ°μ νλ‘ν μ½μ μ¬μ©νμ¬ λ°μ΄ν° μ μ‘μ μ²λ¦¬νλ μΉ APIμ
λλ€.
- REST APIλ³΄λ€ λ³΅μ‘νμ§λ§, λ μ격ν νμ€μ λ°λ¦
λλ€.
-
2. λΌμ΄λΈλ¬λ¦¬ API
- κ°λ°μκ° νΉμ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν λ μ 곡λλ ν¨μμ λͺ
λ Ήμ΄λ₯Ό μλ―Έν©λλ€.
- μλ₯Ό λ€μ΄, Pythonμ
math
λΌμ΄λΈλ¬λ¦¬λ μν κ΄λ ¨ κΈ°λ₯μ μ 곡νλ APIμ
λλ€.
-
3. μ΄μ 체μ API
- μ΄μ 체μ κ° μ 곡νλ κΈ°λ₯μ μ ν리μΌμ΄μ
μ΄ μ¬μ©ν μ μλλ‘ μΈν°νμ΄μ€λ₯Ό μ 곡ν©λλ€.
- μλ₯Ό λ€μ΄, Windows APIλ νμΌ μμ€ν
μ κ·Ό, κ·Έλν½ μ²λ¦¬, λ€νΈμν¬ κΈ°λ₯ λ±μ μ 곡ν©λλ€.
-
4. νλμ¨μ΄ API
- νλμ¨μ΄ μ₯μΉ(μ: νλ¦°ν°, κ·Έλν½ μΉ΄λ)μ μννΈμ¨μ΄ κ°μ μνΈμμ©μ μν APIμ
λλ€.
- μ΄λ₯Ό ν΅ν΄ μννΈμ¨μ΄λ νλμ¨μ΄μ κΈ°λ₯μ μ§μ μ‘°μν μ μμ΅λλ€.
3. APIμ κ΅¬μ± μμ.
-
1. μμ²(Request)
- ν΄λΌμ΄μΈνΈκ° μλ²μ λ°μ΄ν°λ₯Ό μμ²νλ κ³Όμ μ
λλ€.
- μΌλ°μ μΌλ‘ μΉ APIμμλ HTTP μμ²μ μ¬μ©νλ©°, μμ²μλ λ€μμ΄ ν¬ν¨λ©λλ€.
-
URL : μμμ μμΉλ₯Ό μ§μ ν©λλ€.
-
HTTP λ©μλ : ν΄λΌμ΄μΈνΈκ° μλ²μ μννκ³ μ νλ μμ
μ λνλ
λλ€.
-
GET
: λ°μ΄ν°λ₯Ό κ°μ Έμ΅λλ€.
-
POST
: μλ‘μ΄ λ°μ΄ν°λ₯Ό μμ±ν©λλ€.
-
PUT
: κΈ°μ‘΄ λ°μ΄ν°λ₯Ό μμ ν©λλ€.
-
DELETE
: λ°μ΄ν°λ₯Ό μμ ν©λλ€.
-
ν€λ(Header) : μμ²μ λν μΆκ° μ 보λ₯Ό λ΄κ³ μμΌλ©°, μΈμ¦ μ 보λ λ°μ΄ν° νμμ μ μν©λλ€.
-
λ³Έλ¬Έ(Body) : μ£Όλ‘
POST
λ PUT
μμ²μμ μλ²λ‘ μ μ‘ν λ°μ΄ν°λ₯Ό ν¬ν¨ν©λλ€.
-
2. μλ΅(Response)
- μλ²κ° ν΄λΌμ΄μΈνΈμ μμ²μ λν΄ λ°ννλ μ 보μ
λλ€.
- μλ΅μλ λ€μμ΄ ν¬ν¨λ©λλ€.
-
μν μ½λ : μμ²μ΄ μ±κ³΅νλμ§, μ€λ₯κ° λ°μνλμ§λ₯Ό λνλ΄λ μ½λμ
λλ€.
-
200 OK
: μμ² μ±κ³΅.
-
404 Not Found
: μμ²ν μμμ μ°Ύμ μ μμ.
-
500 Internal Server Error
: μλ² λ΄λΆ μ€λ₯.
-
3. λ³Έλ¬Έ(Body)
- μλ²κ° λ°ννλ μ€μ λ°μ΄ν°λ‘, λ³΄ν΅ JSON, XML, HTML νμμΌλ‘ μ 곡λ©λλ€.
4. APIμ μμ.
-
1. μΉ API μμ.
-
Google Maps API
- κ°λ°μλ Google Maps APIλ₯Ό μ¬μ©νμ¬ μΉ μ¬μ΄νΈλ μ±μ μ§λλ₯Ό μ½μ
νκ³ , μμΉ κΈ°λ° λ°μ΄ν°λ₯Ό κ²μν μ μμ΅λλ€.
- μ¬μ©μλ μ§λ λ°μ΄ν°λ₯Ό μ§μ κ΄λ¦¬νμ§ μμλ Googleμ μλ²μμ μ 곡νλ μλΉμ€λ₯Ό νμ©ν μ μμ΅λλ€.
-
Twitter API
- Twitter APIλ νΈμν° λ°μ΄ν°(νΈμ, μ¬μ©μ μ 보 λ±)μ μ κ·Όν μ μλ κΈ°λ₯μ μ 곡ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ κ°λ°μλ νΈμν°μ κ΄λ ¨λ μ ν리μΌμ΄μ
μ΄λ λΆμ λꡬλ₯Ό λ§λ€ μ μμ΅λλ€.
-
λΌμ΄λΈλ¬λ¦¬ API μμ
- Java Standard Library
- Java νλ‘κ·Έλλ° μΈμ΄μμ κΈ°λ³Έμ μΌλ‘ μ 곡νλ ν¨μ λ° λ©μλ λͺ¨μμ
λλ€.
- μλ₯Ό λ€μ΄,
java.util.List
APIλ₯Ό ν΅ν΄ 리μ€νΈ κ΄λ ¨ κΈ°λ₯μ μ½κ² μ¬μ©ν μ μμ΅λλ€.
5. APIμ μ₯μ .
-
1. μ¬μ¬μ©μ±.
- APIλ₯Ό μ¬μ©νλ©΄ κΈ°μ‘΄ μμ€ν
μ κΈ°λ₯μ μ¬μ¬μ©ν μ μμ΄, λμΌν κΈ°λ₯μ μ²μλΆν° κ°λ°νμ§ μμλ λ©λλ€.
- μ΄λ₯Ό ν΅ν΄ κ°λ° ν¨μ¨μ±μ΄ λμμ§λλ€.
-
2. νμ₯μ±.
- APIλ μλ‘ λ€λ₯Έ μ ν리μΌμ΄μ
μ΄ μνΈμμ©ν μ μλλ‘ νμ¬, νμ₯μ±κ³Ό μ μ°μ±μ μ 곡ν©λλ€.
- μλ₯Ό λ€μ΄, λ€μν μ±μ΄ Facebook APIλ₯Ό μ¬μ©ν΄ μμ
κΈ°λ₯μ ν΅ν©ν μ μμ΅λλ€.
-
3. μ μ§λ³΄μ.
- APIλ μΈν°νμ΄μ€λ₯Ό μ 곡νλ μΈ‘(μλ², μλΉμ€ μ 곡μ)κ³Ό μ΄λ₯Ό μ¬μ©νλ μΈ‘(ν΄λΌμ΄μΈνΈ)μ΄ λ
립μ μΌλ‘ μ μ§λ³΄μν μ μκ² ν΄μ€λλ€.
- μ¦, APIμ ꡬν μΈλΆ μ¬νμ΄ λ³κ²½λλλΌλ ν΄λΌμ΄μΈνΈλ λμΌν λ°©μμΌλ‘ APIλ₯Ό νΈμΆν μ μμ΅λλ€.
-
4. 보μ.
- APIλ λ°μ΄ν°λ μλΉμ€μ λν μ κ·Όμ μ νν μ μλ 보μ λ©μ»€λμ¦μ μ 곡ν©λλ€.
- API ν€, OAuth λ±μ μΈμ¦ λ°©μμ΄ μ΄λ₯Ό μ§μν©λλ€.
6. APIμ 보μ.
- APIλ 보μ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μΈμ¦(Authentication) λ° κΆν λΆμ¬(Authorization)λ₯Ό νμλ‘ ν©λλ€.
- μ£Όμ 보μ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
-
API ν€
- ν΄λΌμ΄μΈνΈκ° μλ²μ μμ²ν λ μ¬μ©νλ κ³ μ ν€λ‘, API μμ²μ΄ μ¬λ°λ₯Έ μ ν리μΌμ΄μ
μμ μλμ§ νμΈν©λλ€.
-
OAuth
- μ¬μ©μ μΈμ¦μ μν νλ‘ν μ½λ‘, μ¬μ©μκ° μ ν리μΌμ΄μ
μ΄ μμ μ μμμ μ κ·Όν μ μλλ‘ μΉμΈνλ μμ€ν
μ
λλ€.
-
HTTPS
- API ν΅μ μ μνΈνλ₯Ό μ μ©νμ¬ λ°μ΄ν°κ° μμ νκ² μ μ‘λλλ‘ λ³΄μ₯ν©λλ€.
7. μμ½.
- APIλ μννΈμ¨μ΄ κ°μ μνΈμμ©μ μν μΈν°νμ΄μ€λ‘, μ ν리μΌμ΄μ
μ΄ μλ‘ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°κ³ κΈ°λ₯μ μ¬μ©ν μ μκ² ν©λλ€.
- μΉ, λΌμ΄λΈλ¬λ¦¬, μ΄μ 체μ λ± λ€μν APIκ° μμΌλ©°, κ°λ°μκ° λ³΅μ‘ν κΈ°λ₯μ λ¨μννκ³ μμ€ν
κ°μ ν΅ν©μ μ½κ² ꡬνν μ μλλ‘ λμ΅λλ€.
- APIλ μ¬μ¬μ©μ±, νμ₯μ±, 보μμ± μΈ‘λ©΄μμ μ€μν μν μ ν©λλ€.
-
URL(Uniform Resource Locator) μ μΈν°λ· μμμ νΉμ μμμ μμΉλ₯Ό λνλ΄λ μ£Όμμ
λλ€.
- μΉ λΈλΌμ°μ λ URLμ μ¬μ©νμ¬ μ¬μ©μκ° μμ²ν μΉ νμ΄μ§λ 리μμ€μ μ κ·Όν©λλ€.
- μ½κ² λ§ν΄, URLμ μΈν°λ· μμμ μμμ΄ μ΄λμ μμΉν΄ μλμ§λ₯Ό λνλ΄λ βμΉ μ£Όμβ μ
λλ€.
1. URLμ κ΅¬μ± μμ.
- URLμ μ¬λ¬ κ΅¬μ± μμλ‘ μ΄λ£¨μ΄μ Έ μμΌλ©°, κ°κ°μ λΆλΆμ μμμ μ κ·ΌνκΈ° μν μ€μν μ 보λ₯Ό μ 곡ν©λλ€.
- μΌλ°μ μΈ URL νμμ λ€μκ³Ό κ°μ΅λλ€.
νλ‘ν μ½://μ¬μ©μ μ 보@νΈμ€νΈ:ν¬νΈ/κ²½λ‘?쿼리#νλκ·Έλ¨ΌνΈ
-
1. νλ‘ν μ½(Scheme)
- ν΄λΌμ΄μΈνΈκ° μμμ μ κ·Όν λ μ¬μ©ν ν΅μ λ°©μμ λνλ
λλ€.
- μ:
http
, https
, ftp
λ±
- μ:
https://www.example.com
μμ https
λ HTTPS νλ‘ν μ½μ μ¬μ©ν΄ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λλ€λ κ²μ μλ―Έν©λλ€.
-
2. νΈμ€νΈ(Host)
- μμμ΄ μμΉν μλ²μ λλ©μΈ μ΄λ¦ λλ IP μ£Όμμ
λλ€.
- μ:
www.example.com
, 198.168.1.1
- μ:
https://www.example.com
μμ www.example.com
μ μλ²μ λλ©μΈ μ΄λ¦μ
λλ€.
-
3. ν¬νΈ λ²νΈ(Port) (μ ν μ¬ν)
- μλ²μμ μ¬μ©ν νΉμ λ€νΈμν¬ ν¬νΈλ₯Ό μ§μ ν©λλ€.
- κΈ°λ³Έμ μΌλ‘ HTTPλ ν¬νΈ 80, HTTPSλ ν¬νΈ 443μ μ¬μ©ν©λλ€.
- ν¬νΈλ₯Ό λͺ
μνμ§ μμΌλ©΄ κΈ°λ³Έ ν¬νΈκ° μ¬μ©λ©λλ€.
- μ:
https://www.example.com:8080
μμ 8080
μ ν¬νΈ λ²νΈμ
λλ€.
-
4. κ²½λ‘(Path)
- μλ² λ΄μμ νΉμ μμμ μμΉλ₯Ό λνλ
λλ€.
- νμΌ μμ€ν
κ²½λ‘μ μ μ¬νκ² μμ(μΉ νμ΄μ§, μ΄λ―Έμ§, νμΌ λ±)μ κ²½λ‘λ₯Ό μ§μ ν©λλ€.
- μ:
https://www.example.com/about
μμ /about
μ example.com
μλ² λ΄μ about
νμ΄μ§λ₯Ό λνλ
λλ€.
-
5. 쿼리 λ¬Έμμ΄(Query String)(μ ν μ¬ν)
- μΆκ°μ μΈ λ§€κ°λ³μ(parameters)λ₯Ό μλ²μ μ λ¬νκΈ° μν΄ μ¬μ©λ©λλ€.
- μ£Όλ‘ URL λμ
?
λ€μ μμΉνλ©°, μ¬λ¬ κ°μ 맀κ°λ³μλ &
λ‘ κ΅¬λΆλ©λλ€.
- μ:
https://www.example.com/search?q=example&lang=en
μμ q=example
κ³Ό lang=en
μ κ²μμ΄μ μΈμ΄λ₯Ό λνλ΄λ 쿼리 맀κ°λ³μμ
λλ€.
-
6. νλκ·Έλ¨ΌνΈ(Fragment)(μ ν μ¬ν)
- νμ΄μ§ λ΄ νΉμ μμΉλ₯Ό λνλ
λλ€.
-
#
κΈ°νΈ λ€μ μμΉνλ©°, λΈλΌμ°μ κ° ν΄λΉ μμΉλ‘ μ€ν¬λ‘€νλλ‘ μ§μν©λλ€.
- μ:
https://www.example.com/docs#section2
μμ #section2
λ νμ΄μ§ λ΄ νΉμ μΉμ
μΌλ‘ μ΄λνκΈ° μν νλκ·Έλ¨ΌνΈμ
λλ€.
2. URL μμ.
- λ€μμ URLμ μ€μ μμμ
λλ€.
https://www.example.com:8080/docs/tutorial.html?name=test#section1
- μ΄ URLμ λΆμνλ©΄ λ€μκ³Ό κ°μ΅λλ€.
-
νλ‘ν μ½ :
https
(보μλ HTTP μ°κ²°)
-
νΈμ€νΈ :
www.example.com
(μλ²μ λλ©μΈ μ΄λ¦)
-
ν¬νΈ :
8080
(μλ²κ° μ¬μ©νλ ν¬νΈ λ²νΈ)
-
κ²½λ‘ :
/docs/tutorial.html
(μλ² λ΄ μμμ κ²½λ‘)
-
쿼리 λ¬Έμμ΄ :
?name=test
(μΆκ° 맀κ°λ³μ name
μ΄ test
λΌλ κ°μ κ°μ§)
-
νλκ·Έλ¨ΌνΈ :
#section1
(λ¬Έμ λ΄ νΉμ μμ
μΌλ‘ μ΄λ)
3. URLμ μν .
-
1. μΉ μμ μλ³
- URLμ μ μΈκ³μ μΌλ‘ κ³ μ ν μμμ μλ³νμ¬, μ¬μ©μκ° μνλ μΉ νμ΄μ§λ 리μμ€μ μ κ·Όν μ μκ² ν΄μ€λλ€.
- μ΄λ ν
μ€νΈ λ¬Έμ, μ΄λ―Έμ§, λμμ, API μλν¬μΈνΈ λ± λ€μν ννμ μμμΌ μ μμ΅λλ€.
-
2. λ°μ΄ν° μ μ‘
- URLμ λ°μ΄ν°λ₯Ό μλ²λ‘ μ μ‘νλ λ°μλ μ¬μ©λ©λλ€.
- νΉν 쿼리 λ¬Έμμ΄μ ν΅ν΄ μΉ μ ν리μΌμ΄μ
μ΄ μ¬μ©μ μ
λ ₯ λ°μ΄ν°λ₯Ό μλ²λ‘ μ μ‘ν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, κ²μ μμ§μμ κ²μμ΄λ₯Ό μ
λ ₯νλ©΄ URLμ 쿼리 λ¬Έμμ΄λ‘ μλ²μ μ μ‘λ©λλ€.
-
3. λ€νΈμν¬ λ¦¬μμ€ μ°κ²°
- URLμ λ¨μν μΉ νμ΄μ§λΏλ§ μλλΌ, FTP μλ², λ©μΌ μλ², λ°μ΄ν°λ² μ΄μ€ λ±μ λ€νΈμν¬ μμκ³Όλ μ°κ²°λ μ μμ΅λλ€.
4. URLκ³Ό URIμ μ°¨μ΄.
-
URI(Uniform Resource Identifier) λ URLμ ν¬ν¨νλ λ λμ κ°λ
μΌλ‘, μμμ μλ³ν μ μλ λ¬Έμμ΄μ λ§ν©λλ€.
- URIλ λ κ°μ§λ‘ ꡬλΆλ©λλ€.
-
URL : μμμ μμΉλ₯Ό λνλ΄λ μλ³μ.
-
URN(Uniform Resource Name) : μμμ μ΄λ¦λ§μ λνλ΄λ μλ³μ.
- μ: ISBN λ²νΈ(
urn:isbn:041450523
)
- URLμ μμμ μμΉ(μ£Όμ)λ₯Ό λνλ΄λ URIμ ν ννμ
λλ€.
5. URLμ μ€μμ±.
-
1. μΉ νμ.
- μΉ λΈλΌμ°μ μμ URLμ μ
λ ₯ν¨μΌλ‘μ¨ μνλ μΉ νμ΄μ§μ μ§μ μ κ·Όν μ μμ΅λλ€.
- λν νμ΄νΌλ§ν¬λ‘ URLμ μ°κ²°ν΄ μ¬μ©μλ μ½κ² μΉ νμ΄μ§ κ°μ μ΄λν μ μμ΅λλ€.
-
2. API νΈμΆ.
- URLμ μΉ API νΈμΆ μ μ€μν μν μ ν©λλ€.
- APIλ URLμ ν΅ν΄ νΉμ μμμ μ κ·Όνκ³ , λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ λ°©μμΌλ‘ λμν©λλ€.
- RESTful APIμμλ URLμ΄ μμμ μλ³νκ³ μμ
μ μννλ μ€μν μμμ
λλ€.
-
3. κ²μ μμ§ μ΅μ ν(SEO).
- URL ꡬ쑰λ κ²μ μμ§μμ μΉ νμ΄μ§λ₯Ό ν¬λ‘€λ§νκ³ μΈλ±μ±νλ λ° μ€μν μμμ
λλ€.
- μ ꡬμ±λ URLμ κ²μ μμ§μ΄ νμ΄μ§ λ΄μ©μ μ΄ν΄νλ λ° λμμ μ€λλ€.
6. μμ½.
- URLμ μΈν°λ·μμ μμμ μμΉλ₯Ό λνλ΄λ μ£Όμλ‘, νλ‘ν μ½, λλ©μΈ μ΄λ¦, κ²½λ‘, 쿼리 λ¬Έμμ΄, νλκ·Έλ¨ΌνΈ λ± μ¬λ¬ μμλ‘ κ΅¬μ±λ©λλ€.
- URLμ ν΅ν΄ μ¬μ©μλ μΉ μμμ μ κ·Όνκ³ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μμΌλ©°, μ΄λ μΉ λΈλΌμ°μ§, API νΈμΆ, λ°μ΄ν° μ μ‘ λ±μ ν΅μ¬μ μΈ μν μ ν©λλ€.
4οΈβ£ 쿼리(Query)
-
쿼리(Query) λ ν΄λΌμ΄μΈνΈκ° μλ²μ λ°μ΄ν°λ₯Ό μ λ¬ν λ URLμ μΌλΆ λ‘ ν¬ν¨λμ΄ μλ²λ‘ μ μ‘λλ λ°μ΄ν°λ₯Ό μλ―Έν©λλ€.
- μ£Όλ‘ GET μμ²μ μ¬μ©λλ©°, URL λμ
?
κΈ°νΈλ₯Ό μ¬μ©νμ¬ μΏΌλ¦¬ λ¬Έμμ΄μ μμνκ³ , νλ μ΄μμ 맀κ°λ³μ(νλΌλ―Έν°)λ₯Ό &
κΈ°νΈλ‘ ꡬλΆνμ¬ μλ²μ μ λ¬ν©λλ€.
1. 쿼리μ μ£Όμ κ°λ
.
-
1. GET μμ²μμμ 쿼리 μ¬μ©.
- GET μμ²μ μλ²μ λ°μ΄ν°λ₯Ό μ λ¬ν λ URLμ 쿼리 λ¬Έμμ΄μ ν¬ν¨νμ¬ μ μ‘ν©λλ€.
- 쿼리λ URLμ κ²½λ‘ λ€μ λΆμΌλ©°,
?
λ‘ μμν ν 맀κ°λ³μ(key-value)λ₯Ό =
λ‘ μ°κ²°ν©λλ€.
- μ¬λ¬ 맀κ°λ³μκ° μμ κ²½μ°
&
λ‘ κ΅¬λΆν©λλ€.
- 쿼리λ μ£Όλ‘ κ²μ 쑰건, νν°λ§ μ 보, νμ΄μ§ λ²νΈ, μ λ ¬ μμ λ± μ μλ²μ μ λ¬ν λ μ¬μ©λ©λλ€.
https://www.example.com/search?q=shoes&color=red&size=10
- μλ₯Ό λ€μ΄, μμ κ°μ URLμ μ΄ν΄λ΄
μλ€.
-
q=shoes
: q
λΌλ 맀κ°λ³μμ shoes
λΌλ κ²μμ΄λ₯Ό μ λ¬ν©λλ€.
-
color=red
: color
λΌλ 맀κ°λ³μμ red
λΌλ κ°μ μ λ¬ν©λλ€.
-
size=10
: size
λΌλ 맀κ°λ³μμ 10
μ΄λΌλ κ°μ μ λ¬ν©λλ€.
-
2. 쿼리μ ꡬ쑰.
-
?
λ‘ μμνμ¬ μΏΌλ¦¬ λ¬Έμμ΄μ΄ μμλ©λλ€.
-
key=value
ννλ‘ λ§€κ°λ³μμ κ·Έ κ°μ ννν©λλ€.
- μ¬λ¬ κ°μ 맀κ°λ³μλ₯Ό μ¬μ©ν κ²½μ°
&
λ‘ κ΅¬λΆν©λλ€.
- κΈ°λ³Έμ μΈ μΏΌλ¦¬ νμμ μλμ κ°μ΅λλ€.
https://www.example.com/resource?key1=value1&key2=value2&key3=value3
-
3. μλ²μμμ μ²λ¦¬.
- μλ²λ ν΄λΌμ΄μΈνΈκ° μ λ¬ν 쿼리 λ¬Έμμ΄μ νμ±νμ¬ κ°κ°μ 맀κ°λ³μ κ°μ μΆμΆν©λλ€.
- μΆμΆλ κ°λ€μ μλ²μμ μμ²μ μ²λ¦¬νλ λ° μ¬μ©λλ©°, μλ₯Ό λ€μ΄ κ²μμ΄, νν°λ§ μ΅μ
, νμ΄μ§ λ²νΈ λ±μ κΈ°λ°μΌλ‘ ν΄λΌμ΄μΈνΈκ° μνλ κ²°κ³Όλ₯Ό λ°νν©λλ€.
-
4. λ°μ΄ν°μ μ ν.
- GET μμ²μ λ°μ΄ν°μ ν¬κΈ° μ νμ΄ μμ μ μμ΅λλ€.
- λΈλΌμ°μ λ μλ²λ λ³΄ν΅ μ½ 2048μ μ λμ URL κΈΈμ΄λ₯Ό νμ©νλ―λ‘, μΏΌλ¦¬λ‘ μ μ‘ν μ μλ λ°μ΄ν°λ μλμ μΌλ‘ μ μ΅λλ€.
- λ―Όκ°ν λ°μ΄ν°(λΉλ°λ²νΈ, κ°μΈμ 보 λ±)λ 쿼리 λ¬Έμμ΄λ‘ μ μ‘νμ§ μλ κ²μ΄ μ’μ΅λλ€.
- 쿼리λ URLμ λ
ΈμΆλλ©°, λΈλΌμ°μ κΈ°λ‘μ΄λ μλ² λ‘κ·Έμ μ μ₯λ μ μκΈ° λλ¬Έμ
λλ€.
- μ΄λ¬ν λ°μ΄ν°λ₯Ό μ μ‘νλ €λ©΄ POST μμ²μ μ¬μ©νλ κ²μ΄ μΌλ°μ μ
λλ€.
2. 쿼리μ μ¬μ© μμ.
https://www.example.com/search?query=laptop&category=electronics&sort=price
- μ΄ μΏΌλ¦¬λ βlaptopβμ΄λΌλ κ²μμ΄λ‘ μ μ μ ν μΉ΄ν
κ³ λ¦¬ λ΄μμ κ°κ²©μμΌλ‘ μ λ ¬λ κ²°κ³Όλ₯Ό μμ²νλ μμ
λλ€.
-
query :
laptop
(κ²μ ν€μλ)
-
category :
electronics
(μΉ΄ν
κ³ λ¦¬)
-
sort :
price
(κ°κ²©μ μ λ ¬)
- μμ 2: νν°λ§ λ° νμ΄μ§.
https://www.example.com/products?category=shoes&brand=nike&size=9&page=2
- μ¬κΈ°μλ μ λ° μΉ΄ν
κ³ λ¦¬μμ
Nike
λΈλλμ μ¬μ΄μ¦ 9μΈ μ νμ λ λ²μ§Έ νμ΄μ§μμ μμ²νλ μν©μ
λλ€.
-
category :
shoes
(μ ν μΉ΄ν
κ³ λ¦¬)
-
brand :
nike
(λΈλλ νν°)
-
size :
9
(μ¬μ΄μ¦ νν°)
-
page :
2
(νμ΄μ§ λ²νΈ)
3. 쿼리μ μ₯μ .
-
URLμ ν΅ν΄ κ°νΈνκ² λ°μ΄ν° μ μ‘.
- 쿼리 λ¬Έμμ΄μ ν΅ν΄ ν΄λΌμ΄μΈνΈλ μ½κ² μλ²μ λ°μ΄ν°λ₯Ό μ λ¬ν μ μμ΅λλ€.
-
μ§μ λ§ν¬λ‘ 곡μ κ°λ₯.
- 쿼리 λ¬Έμμ΄μ ν¬ν¨ν URLμ λ°λ‘ 곡μ ν μ μμΌλ©°, μ¬μ©μκ° λμΌν URLμ ν΅ν΄ λμΌν μμ²μ μ¬νν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, μ¬μ©μκ° νν°λ§ μ΅μ
μ΄ μ μ©λ κ²μ κ²°κ³Ό νμ΄μ§μ URLμ λ€λ₯Έ μ¬μ©μμ 곡μ ν μ μμ΅λλ€.
-
κ²μ μμ§ μ΅μ ν(SEO).
- κ²μ μμ§μ΄ 쿼리λ₯Ό ν΅ν΄ νΉμ ν νμ΄μ§ λ΄μ©μ μ΄ν΄νκ³ μμΈν μ μμ΅λλ€.
4. 쿼리μ POST μμ²μ μ°¨μ΄μ .
-
GET μμ² μμμ 쿼리 λ¬Έμμ΄μ URLμ λ
ΈμΆλλ©°, λΈλΌμ°μ νμ€ν 리λ μλ² λ‘κ·Έμ μ μ₯λ μ μμ΅λλ€.
- μ΄ λλ¬Έμ λ―Όκ°ν μ 보λ₯Ό μ μ‘ν λλ μ ν©νμ§ μμ΅λλ€.
-
POST μμ² μμλ λ°μ΄ν°λ₯Ό λ³Έλ¬Έ(body)μ λ΄μ μ μ‘νλ―λ‘, URLμ λ
ΈμΆλμ§ μμ΅λλ€.
- ν° μμ λ°μ΄ν°λ₯Ό μ μ‘νκ±°λ 보μμ΄ μ€μν μ 보λ₯Ό μ μ‘ν λλ POST μμ²μ μ¬μ©νλ κ²μ΄ λ μμ ν©λλ€.
5. μμ½.
- 쿼리λ ν΄λΌμ΄μΈνΈκ° μλ²μ λ°μ΄ν°λ₯Ό μ λ¬ν λ GET μμ²μ URLμ 맀κ°λ³μλ‘ ν¬ν¨λμ΄ μ μ‘λλ λ°μ΄ν°λ₯Ό μλ―Έν©λλ€.
- 쿼리 λ¬Έμμ΄μ
key=value
ννλ‘ μ λ¬λλ©°, μ¬λ¬ 맀κ°λ³μλ &
λ‘ κ΅¬λΆλ©λλ€.
- κ²μμ΄, νν° μ‘°κ±΄, νμ΄μ§ λ²νΈ λ±μ μλ²λ‘ μ μ‘ν λ μ£Όλ‘ μ¬μ©λλ©° URLμ λ
ΈμΆλλ λ§νΌ λ―Όκ°ν μ 보 μ μ‘μλ μ ν©νμ§ μμ΅λλ€.
5οΈβ£ λ°λ(Body)
-
λ°λ(Body) λ ν΄λΌμ΄μΈνΈκ° μλ²λ‘ POST, PUT, PATCH μ κ°μ HTTP μμ²μ λ³΄λΌ λ, λ°μ΄ν°λ₯Ό λ΄μ μλ²λ‘ μ μ‘νλ λΆλΆ μ
λλ€.
- νΉν, ν° μμ λ°μ΄ν°λ 보μμ΄ μ€μν λ°μ΄ν°λ₯Ό μ μ‘ν λ λ°λλ₯Ό μ¬μ©ν©λλ€.
- λ°λλ URLμ λ
ΈμΆλμ§ μκ³ μμ² λ©μμ§μ λ³Έλ¬Έμ ν¬ν¨λλ―λ‘, λ°μ΄ν° μ μ‘μ μμ΄ μ€μν μν μ ν©λλ€.
1. λ°λλ₯Ό μ¬μ©νλ μ£Όμ HTTP λ©μλ.
-
1. POST
- μλ²μ μλ‘μ΄ λ°μ΄ν°λ₯Ό μμ±νκΈ° μν μμ²μ λ³΄λΌ λ μ¬μ©ν©λλ€.
- μμ² λ°λμ μ μ‘ν λ°μ΄ν°λ₯Ό ν¬ν¨νμ¬ μλ²λ‘ 보λ
λλ€.
- μ: μ¬μ©μ λ±λ‘, νμΌ μ
λ‘λ λ±.
-
2. PUT
- μλ²μ κΈ°μ‘΄ λ°μ΄ν°λ₯Ό μμ ν λ μ¬μ©ν©λλ€.
- μμ² λ°λμ μμ ν λ°μ΄ν°λ₯Ό ν¬ν¨νμ¬ μλ²λ‘ 보λ
λλ€.
- μ: κΈ°μ‘΄ μ¬μ©μμ μ 보 μ
λ°μ΄νΈ.
-
3. PATCH
- μλ²μ μΌλΆ λ°μ΄ν°λ₯Ό μμ ν λ μ¬μ©λ©λλ€.
- μ 체 λ°μ΄ν°κ° μλ, μμ ν λΆλΆλ§μ λ°λμ ν¬ν¨νμ¬ λ³΄λ
λλ€.
-
4. DELETE
- μΌλΆ κ²½μ°μλ μλ²μ μμ ν μμμ λν μΆκ° μ 보λ₯Ό λ°λμ λ΄μ λ³΄λΌ μ μμ΅λλ€.
- νμ§λ§ λλΆλΆμ DELETE μμ²μ λ°λ μμ΄ μ€νλκΈ°λ ν©λλ€.
2. λ°λλ₯Ό μ¬μ©νλ μ΄μ .
-
1. λμ©λ λ°μ΄ν° μ μ‘.
- GET μμ²μμ μ¬μ©λλ 쿼리 λ¬Έμμ΄μ λ°μ΄ν° ν¬κΈ°μ μ νμ΄ μμ΅λλ€.
- λ°λ©΄, λ°λλ₯Ό μ¬μ©νλ POSTλ PUT μμ²μ ν° λ°μ΄ν°λ₯Ό μμ νκ² μ μ‘ν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, λμ©λ νμΌμ΄λ μ΄λ―Έμ§ λ±μ μ μ‘ν λ λ°λλ₯Ό μ¬μ©ν©λλ€.
-
2. 보μ.
- λ°λμ ν¬ν¨λ λ°μ΄ν°λ URLμ λ
ΈμΆλμ§ μμΌλ©°, λΈλΌμ°μ μ μ£Όμ μ°½μ΄λ μλ² λ‘κ·Έμ κΈ°λ‘λμ§ μμ΅λλ€.
- λ°λΌμ, λΉλ° λ²νΈ, κ°μΈμ 보, κ²°μ μ 보 λ± λ―Όκ°ν λ°μ΄ν°λ₯Ό μ μ‘ν λ λ°λλ₯Ό μ¬μ©νλ κ²μ΄ μ μ ν©λλ€.
-
3. ꡬ쑰νλ λ°μ΄ν° μ μ‘.
- JSON, XML, HTMLκ³Ό κ°μ ꡬ쑰νλ λ°μ΄ν°λ₯Ό μ½κ² μ μ‘ν μ μμ΅λλ€.
- λ°λλ 볡μ‘ν λ°μ΄ν° ꡬ쑰λ₯Ό λ΄μμ μλ²λ‘ μ λ¬ν μ μλ μ μ°ν λ°©λ²μ μ 곡ν©λλ€.
3. μμ² λ°λμ νμ(Content-Type)
- ν΄λΌμ΄μΈνΈκ° μλ²λ‘ λ°μ΄ν°λ₯Ό μ μ‘ν λ, μμ² λ°λμ λ°μ΄ν° νμμ Content-Type ν€λλ‘ μ§μ λ©λλ€.
- μΌλ°μ μΌλ‘ μ¬μ©λλ λ°μ΄ν° νμμ λ€μκ³Ό κ°μ΅λλ€.
-
1. application/json
- JSON(JavaScript Object Notation) νμμΌλ‘ λ°μ΄ν°λ₯Ό μ μ‘ν©λλ€.
- RESTful APIμμ κ°μ₯ λ§μ΄ μ¬μ©λλ νμμ
λλ€.
{
"username": "example_user",
"password": "example_password"
}
-
2. application/x-www-form-urlencoded
- HTML νΌμμ μ μ‘λλ κΈ°λ³Έ νμμΌλ‘, ν€-κ° μμΌλ‘ URL μΈμ½λ© λ°©μμΌλ‘ μ μ‘ν©λλ€.
- λ°μ΄ν°λ URL 쿼리 λ¬Έμμ΄κ³Ό μ μ¬ν νμμΌλ‘ λ°λμ μ μ‘λ©λλ€.
username=example_user&password=example_password
-
3. multipart/form-data
- νμΌ μ
λ‘λμ κ°μ΄ λ€μν νμμ λ°μ΄ν°λ₯Ό ν¨κ» μ μ‘ν λ μ¬μ©λ©λλ€.
- κ° νμΌμ΄λ λ°μ΄ν° νλͺ©μ λ³λμ ννΈλ‘ ꡬλΆνμ¬ μ μ‘ν μ μμ΅λλ€.
- νΉν μ΄λ―Έμ§, λ¬Έμμ κ°μ νμΌμ μ μ‘ν λ λ§μ΄ μ¬μ©λ©λλ€.
Content-Type: multipart/form-data; boundary=------------------------boundary
--------------------------boundary
Content-Disposition: form-data; name="username"
example_user
--------------------------boundary
Content-Disposition: form-data; name="file"; filename="example.png"
Content-Type: image/png
(νμΌ λ°μ΄ν°)
--------------------------boundary--
-
4. text/plain
- λ¨μ ν
μ€νΈ λ°μ΄ν°λ₯Ό μ μ‘ν λ μ¬μ©λ©λλ€.
- μλ₯Ό λ€μ΄, κ°λ¨ν λ©μμ§λ₯Ό μ μ‘νκ±°λ ν
μ€νΈμ©μΌλ‘ μ¬μ©ν μ μμ΅λλ€.
4. μμ² λ°λ μ¬μ© μμ.
-
1. POST μμ² μμ (JSON λ°μ΄ν° μ μ‘)
- ν΄λΌμ΄μΈνΈκ° μλ²λ‘ μ¬μ©μ λ±λ‘ μμ²μ λ³΄λΌ λ, JSON νμμΌλ‘ λ°μ΄ν°λ₯Ό μ μ‘ν μ μμ΅λλ€.
POST /register HTTP/1.1
Host: www.example.com
Content-Type: application/json
{
"username": "new_user",
"email": "user@example.com",
"password": "user_password"
}
-
Content-Type
- μμ² λ°λκ° JSON νμμμ μλ²μ μ립λλ€.
-
λ°λ
- ν΄λΌμ΄μΈνΈκ° μ μ‘νλ €λ λ°μ΄ν°κ° JSON νμμΌλ‘ ν¬ν¨λ©λλ€.
-
2. PUT μμ² μμ (νΌ λ°μ΄ν° μ μ‘)
- μ¬μ©μμ μ 보λ₯Ό μμ ν λ, νΌ λ°μ΄ν° νμμΌλ‘ λ°μ΄ν°λ₯Ό μ μ‘ν μ μμ΅λλ€.
PUT /update-profile HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
username=updated_user&email=updated@example.com
-
Content-Type
-
application/x-www-form-urlencoded
λ ν€-κ° μμ νΌ λ°μ΄ν°λ₯Ό μ μ‘νλ νμμ
λλ€.
-
λ°λ
- μμ λ μ¬μ©μ μ 보λ₯Ό ν€-κ° μμΌλ‘ ν¬ν¨νκ³ μμ΅λλ€.
5. λ°λμ 보μ.
- λ°λλ₯Ό μ¬μ©νμ¬ μ μ‘λλ λ°μ΄ν°λ URLμ λ
ΈμΆλμ§ μμ§λ§, μ¬μ ν λ€νΈμν¬λ₯Ό ν΅ν΄ μ μ‘λλ λμ 보μμ΄ νμν©λλ€.
- μ΄λ₯Ό μν΄ HTTPSλ₯Ό μ¬μ©νμ¬ ν΅μ μ μνΈννλ κ²μ΄ μΌλ°μ μ
λλ€.
- HTTPSλ₯Ό μ¬μ©νλ©΄ λ°λμ ν¬ν¨λ λ°μ΄ν°κ° μ€κ°μμ κ°λ‘μ±μ΄κ±°λ λ³μ‘°λμ§ μλλ‘ λ³΄νΈν μ μμ΅λλ€.
6. μμ½.
- λ°λλ ν΄λΌμ΄μΈνΈκ° μλ²λ‘ λ°μ΄ν°λ₯Ό μ μ‘ν λ μμ² λ©μμ§μ λ³Έλ¬Έμ ν¬ν¨λλ λΆλΆμ
λλ€.
- μ£Όλ‘ POST, PUT, PATCHμ κ°μ μμ²μμ μ¬μ©λλ©°, λμ©λ λ°μ΄ν°λ λ―Όκ°ν μ 보λ₯Ό μμ νκ² μ μ‘νλ λ° μ ν©ν©λλ€.
- λ°λμλ JSON, νΌ λ°μ΄ν°, νμΌ λ± λ€μν νμμ λ°μ΄ν°λ₯Ό ν¬ν¨ν μ μμΌλ©°, URLμ λ
ΈμΆλμ§ μμ 보μ μΈ‘λ©΄μμ μ€μν μν μ ν©λλ€.