π[Web] HTTPμ λν΄μβ¦
π HTTPμ λν΄μβ¦
www
(World Wide Web) μμμ μ°λ¦¬κ° λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μκ² ν΄μ£Όλ λνμ μΈ νλ‘ν μ½μ΄ HTTP
μ΄λ€.
1. HTTPλ
HTTPλ HyperText Transfer Protcol
μ μ½μλ‘, W3μμμ μ 보λ₯Ό μ£Όκ³ λ°μ μ μλ νλ‘ν μ½λ‘, μΌμ’
μ μ μ‘κ·μ½μ΄λ€.
htmlλ¬Έμμ κ°μ 리μμ€λ€μ μ£Όκ³ λ°λ λ°μ μ¬μ©λλ€.
μ£Όλ‘ TCP
λ₯Ό μ¬μ©νλλ°, HTTP/3λΆν°λ UDP
λ₯Ό μ¬μ©νλ€.
- TCP/UDPμ λν λΈλ‘κ·Έ : πTCPμUDPμ λν΄μβ¦
2. HTTPμ νΉμ§
2-1. λΉμ°κ²°μ± (Connectionless)
λΉμ°κ²°μ±μ΄λ, μ²μ μ°κ²°μ λ§Ίμ μμ²κ³Ό ν λ²μ μλ΅ μ΄ν μ°κ²°μ΄ μ’ λ£λλ νΉμ§μ λ§νλ€. κ·Έλμ μλ‘μ΄ μμ²μ΄ μ¬ λλ§λ€ λ€μ μ°κ²°μ ν΄μΌνλ€.
2-2. 무μνμ± (Stateless)
무μνμ±μ΄λ, νλ‘ν μ½μμ ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ )μ μνλ₯Ό κΈ°μ΅νμ§ μλ νΉμ§μ λ§νλ€.
ν΄λΌμ΄μΈνΈμ μνλ₯Ό 보κ΄νκΈ° μν λ°©λ²μΌλ‘λ μΏ ν€, μΈμ
λ±μ μ΄μ©νμ¬ μνλ₯Ό μ μ§νλ€.
3. HTTP METHOD
3-1. CRUD
CRUD
λ, Create
, Read
. Update
, Delete
λ‘μ, κΈ°λ³Έμ μΈ λ°μ΄ν° μ²λ¦¬ κΈ°λ₯μ΄λ€. CRUD
λ λ°μ΄ν°λ₯Ό μ²λ¦¬ν¨μ μμ΄μ, ν° νμ κΈ°μ€μ΄ λλ μμ²μ΄λ€.
CRUD | μλ―Έ |
---|---|
Create | μμ± |
Read | νΈμΆ |
Update | κ°±μ |
Delete | μμ |
3-2. GET/POST
λ°μ΄ν°λ₯Ό μμ²ν λ μ¬μ©νλ λ©μλμλ λνμ μΌλ‘ GET/POST λ°©μμ΄ μλ€.
- μμ²λ°©μμ λν λΈλ‘κ·Έ : πμμ²λ°©μμ λν΄μβ¦
μμ²λ°©μκ³ΌCRUD
λ₯Ό μ§μ§μ΄ μκ°ν΄λ³΄λ©΄, μλ νμ κ°λ€.
CRUD | μλ―Έ | λ©μλ |
---|---|---|
Create | μμ± | POST |
Read | νΈμΆ | GET |
Update | κ°±μ | PUT |
Delete | μμ | DELETE |
3-3. GET/POST μ°¨μ΄μ
νΉμ§ | GET | POST |
---|---|---|
μΊμ | βοΈ | β |
λΈλΌμ°μ κΈ°λ‘ | βοΈ | β |
λΈλ§ν¬ μΆκ° | βοΈ | β |
λ°μ΄ν° κΈΈμ΄ μ ν | βοΈ | β |
μ λ΅μ½λ | 200 | 201 |
μμ² μν© | 리μμ€ μμ² | 리μμ€ μμ± |
리μμ€ μ λ¬ λ°©μ | 쿼리μ€νΈλ§ | http body |
idempotent | βοΈ | β |
4. HTTP μνμ½λ
μνμ½λ
λ ν΄λΌμ΄μΈνΈκ° μλ²μ λ°μ΄ν°λ₯Ό μμ²νμ λ, μλ²μμ ν΄λΌμ΄μΈνΈμ μμ²μ λν μνλ₯Ό μ리λ μ½λλ‘ μκ°ν μ μλ€.
μνμ½λ
λ 3μ리 μ«μλ‘ μ΄λ£¨μ΄μ Έ μκ³ , 1xx ~ 5xxκΉμ§ μ 곡λλ€. λ°±μ μλ¦¬κ° 4, 5μΈ κ²½μ°λ μ μμ μΈ μνκ° μλλ―λ‘ μλ² νΉμ μμ²μ λν νμΈμ΄ νμνλ€.
|μνμ½λ|μλ―Έ|
|ββ|β|
|1xx(μ 보)|μμ²μ λ°μκ³ , κ³μ μ§νν¨|
|2xx(μ±κ³΅)|μμ²μ μ±κ³΅μ μΌλ‘ λ°μ|
|3xx(리λ€μ΄λ μ
)|μμ²μ μλ£νκΈ° μν΄ μΆκ° μμ
νμ|
|4xx(ν΄λΌμ΄μΈνΈ μ€λ₯)|μμ²μ λ¬Έλ² μ€λ₯ νΉμ μμ²μ λν μ²λ¦¬ λΆκ°|
|5xx(μλ² μ€λ₯)|μλ²κ° μμ²μ λν μ²λ¦¬ λΆκ°|
4-1. μμ£Ό λ±μ₯νλ μνμ½λ
|μνμ½λ|μ€λͺ | |β|β| |100|Continue| |200|OK| |301|μμ²ν μμμ΄ μ΄λλμμ. ν€λ μ 보μ μ΄λ μμΉλ₯Ό μλ €μ€ν λ λ€μ μμ²νμμ€| |304|ν΄λΌμ΄μΈνΈκ° μμ 보κ΄ν μλ΅ κ²°κ³Όμ λ€λ₯΄μ§ μμ| |400|μλͺ»λ μμ²(Bad Request)| |401|Unauthorized(μΈμ¦λ μ¬μ©μκ° μλ)| |403|μ κ·Ό κΆν μμ(Forbidden)| |404|μμ²μ λν μμ μμ(Not Found)| |500|μλ² λ΄λΆ μ€λ₯(Interner Server Error)|
5. HTTPS
HTTPS
λ (HyperText Trasnfer Protocol over Secure Socket Layer)λ‘, HTTP over TLS
νΉμ HTTP over SSL
, HTTP Secure
μΌλ‘ λΆλ¦°λ€.
- SSL(λλ TLS)μΈμ¦μλ₯Ό μ¬μ©νλ http
httpsμ μ΄λ¦μμ μ μ μλ―μ΄, κΈ°μ‘΄ httpμ 보μ μΈ‘λ©΄μμ κ°νλ λ²μ μ΄λΌκ³ μκ°ν μ μλ€.
httpsλ₯Ό κ°λ°ν μ΄μ λ ν΅μ μ μΈμ¦
κ³Ό μνΈν
μ΄λ€.
- μνΈνλ‘ μΈν΄, κ°μΈ λ°μ΄ν°λ₯Ό νμΉκ±°λ ν΄νΉ, μ‘°νλ₯Ό ν μ μλλ‘ μλνλ€.
httpsμΈμ§ νμΈνλ λ²?: λΈλΌμ°μ URLμ°½μμ λλ©μΈ μ΄λ¦ μμ μλ¬Όμ μμ΄μ½μ΄ μμΌλ©΄ httpsλ‘ λμνλ€λ λ».
5-1. SSL
SSL
μ΄λ, (Secure Sockets Layer)λ‘, 보μ μμΌ κ³μΈ΅
μΈμ¦μ μ΄λ€.
βλμ§νΈ μΈμ¦μβλ‘λ λΆλ¦¬λ©°, λΈλΌμ°μ μ μλ² μ¬μ΄μ λ°μ΄ν°λ₯Ό μνΈν
νμ¬ μΈν°λ· μ°κ²°μ 보νΈνκΈ° μν νμ€ κΈ°μ μ΄λ€.
5-2. TLS
TLS
λ, (Transport Layer Security)λ‘, μ μ‘ κ³μΈ΅ 보μ
μΈμ¦μμ΄λ€.
SSLλ³΄λ€ μμ ν μ
κ·Έλ μ΄λ λ²μ μ΄λ€.
6. μμ²ν€λ
ν€λμλ μ΄ 3κ°μ§ μ’
λ₯κ° μλλ°, μμ²μ΄λ μλ΅ λͺ¨λ μ μ©ν μ μλ μΌλ° ν€λ
μ μμ² λλ μλ΅ μ€ μ€ νλμλ§ μ μ©ν μ μλ μμ² ν€λ
λλ μλ΅ ν€λ
, 보λ΄κ±°λ λ°λ λ³Έλ¬Έ λ°μ΄ν°λ₯Ό μ€λͺ
νλ μν°ν° ν€λ
κ° μλ€.
HTTP ν€λλ€
|ν€λ μ ν|ν€λ λͺ
|
|β|β|
|μΌλ° ν€λ|Cache-Control, Connection, Date, Pragma β¦|
|μμ² ν€λ|Accept, Accept-Charset, Accept-Encoding, User-Agent β¦|
|μλ΅ ν€λ|Accept-Ranges, Age, ETag, Location β¦|
|λ³Έλ¬Έ ν€λ|Allow, Content-Encoding, Content-Language β¦|
μμ ν λ³΄λ€ λ λ§μ.. λ무 λ§λ€...
μ΄ μ€μ μμ² ν€λμ User-Agent
λ ν΄λΌμ΄μΈνΈμ μ 보λ₯Ό μλ²μκ² μλ €μ£Όλ ν€λλ‘, λμ¬κ²¨ λ³Ό νμκ° μλ€.
μΉ μλ²λ μ΄ ν€λλ₯Ό λΆμνμ¬ μμ²μμ OSμ λΈλΌμ°μ λ₯Ό ꡬλΆνλ€.
νλ‘κ·Έλ¨ λ€μ΄λ‘λ νμ΄μ§μ λ€μ΄κ°λ©΄ μλμ°λ λ§₯os λ±μ λ§λ νλ‘κ·Έλ¨μ μ€μΉνλΌκ³ λμ€λ κ²½μ°κ° μ΄λ° κ²½μ°
λκΈλ¨κΈ°κΈ°