HTTP(Hypertext Transfer Protocol)
- μ»΄ν¨ν°(client & server) λΌλ¦¬μ μν΅μ μν ν΅μ κ·μ½.
- HTTP ν΅μ μ μμ²/μλ΅μΌλ‘ μ΄λ£¨μ΄μ§λ€.
- HTTP 맀 μμ²/μλ΅μ μ΄μ μνλ₯Ό μμ§ λͺ»νλ€.
- μΉμμλ λΈλΌμ°μ μ μλ² κ°μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°κΈ° μν λ°©μμΌλ‘ HTTP νλ‘ν μ½μ μ¬μ©νκ³ μλ€.
- ν΅μ μ¬μ΄μ λ°λ‘ μνΈν κ³Όμ μ κ±°μΉμ§ μλλ€.
HTTPμ λκ°μ§ νΉμ§
- Requset/Response (μμ²/μλ΅)
μ»΄ν¨ν°μ μ μ μ μν΅
-
Requestμ λ©μμ§ κ΅¬μ‘°
- Start Line : HTTP Method, Requset target, HTTP VersionμΌλ‘ ꡬμ±λμ΄μλ€.
- HTTP Method : ν΄λΉ μμ²μ΄ μλν μ‘μ
μ μ GET,POST, DELETE λ±..
- Reuset target : λͺ©ν url
- HTTP Version : HTTP version
- Headers : ν΄λΉ μμ²μ λν μΆκ° μ 보(λ©ν λ°μ΄ν°)λ΄κ³ μλ€. Key:value νν
- Host : μμ²μ 보λ΄λ λͺ©ν (μ£Όμ)
- User-Agent : μμ²μ 보λ΄λ clientμ λν μ 보
- Content-Type : ν΄λΉ μμ²μ 보λ΄λ λ©μΈμ§ body type
- Content-Length : body λ΄μ©μ κΈΈμ΄
- Authorization : μΈμ¦/μΈκ°λ₯Ό μ²λ¦¬νκΈ° μν΄ λ‘κ·ΈμΈ ν ν°μ λ΄λλ€.
- Body : ν΄λΉ μμ²μ μ€μ λ΄μ©
-
Responseμ λ©μμ§ κ΅¬μ‘°
-
Start Line : μλ΅ μν μ€
- HTTP Version
- Status Code : μν μ½λ / μλ²μμ μ€μ ν΄μ£Όλ μλ΅ μ 보
- Status Text : μν κ°λ΅ν μ€λͺ
νλ ν
μ€νΈ
-
Headers : requsetμ λμΌ. Server μ κ°μ΄ μλ΅μμλ§ μ¬μ©νλ κ²λ€λ μμ
-
Body : requsetμ λμΌ. κ°μ₯ λ§μ΄ μ¬μ©νλ data typeμ JSON
- stateless (state + less)
- HTTP κ°λ³ ν΅μ μ λͺ¨λ λ
립μ΄μ΄μ κ³Όκ±°μ HTTP ν΅μ κ²°κ³Ό(state)λ₯Ό 보쑴νμ§ μλλ€.
- ex)
- λ‘κ·ΈμΈνκ³ λμ€μ μλ‘κ³ μΉ¨νλ©΄ λ‘κ·ΈμΈμ΄ λ€μ νμνλ€.
- 보μ(stateful)νκΈ° μν΄μ cookie, sessionμ μ¬μ©νλ€.
-
HTTP Requset Methods
- GET
- μ‘΄μ¬νλ μμμ λν μμ²
- μλ²λ‘ λΆν° λ°μ΄ν°λ₯Ό λ°μμ¬λλ§ μ¬μ©
- POST
- μλ‘μ΄ μμμ μμ±
- λ°μ΄ν°λ₯Ό μμ± / μμ
- DELETE
- μ‘΄μ¬νλ μμμ λν μμ
- νΉμ λ°μ΄ν°λ₯Ό μλ²μμ μμ μμ²μ 보λΌλ
- PUT
- μ‘΄μ¬νλ μμμ λν λ³κ²½
λμ μμ
TCP -> HTTP
TCPλ
HTTPS(Hypertext Transfer Protocol Secure)
HTTPκ° κ°μ§κ³ μλ λ¬Έμ μ μΈ μλ²μμλΆν° λΈλΌμ°μ λ‘ μ μ‘λλ μ λ³΄κ° μνΈνλμ§ μμ λ°μ΄ν°κ° λλ λΉνκΈ° μ¬μ μλ μ μ SSLμ μ΄μ©ν΄ ν΄κ²°ν μ μκ² λλ€.
HTTPμμ SSLμ μΆκ°νλ κ²μΌλ‘ μλ²μ λΈλΌμ°μ μ¬μ΄μ μμ νκ² μνΈνλ μ°κ²°μ λ§λ€ μ μκ² λμμ£Όκ³ λ―Όκ°ν μ 보(password, creditcard info ...)λ₯Ό μ£Όκ³ λ°μ λ λλμ λ°©μ΄ν΄μ€λ€.
SSL(Secure Sockets Layer)μ μνΈν κΈ°λ° μΈν°λ· 보μ νλ‘ν μ½
π μνΈν λ°©μ
μΌλ°μ μΌλ‘ λ§μ΄ μ¬μ©νλ λμΉν€ & λΉλμΉν€ μνΈνλ₯Ό μ¬μ©νλ€.
-
λμΉν€ μνΈν
- λ΄κ° νλ μλ²κ° νλ λμΌν ν€λ₯Ό κ°μ§κ³ μκ³ κ·Έ ν€λ₯Ό μ΄μ©ν΄μ μνΈν/볡νΈνλ₯Ό νλ€.
- ν€κ° λ
ΈμΆλλ©΄ μννμ§λ§ ν€λ₯Ό λμ‘°νμ§ μμλ λλ λ§νΌ μ°μ°μλκ° λΉ λ₯΄λ€.
-
λΉλμΉν€ μνΈν
- 1κ°μ μμΌλ‘ ꡬμ±λ 곡κ°ν€μ κ°μΈν€λ₯Ό μνΈν/볡νΈν νλλ° μ¬μ©νλ€.
- ν€κ° λ
ΈμΆλμ΄λ μμ νμ§λ§ μ°μ°μλκ° λ리λ€.
- κ°μΈν€λ μ λλ‘ λ
ΈμΆλμ΄μ μλκ³ κ³΅κ°ν€λ 곡κ°κ° λμ΄μλ ν€
λΉλμΉ μνΈνμλ λκ°μ§ λ°©λ²μ΄ μλ€.
- 곡κ°ν€ μνΈνλ₯Ό ν΅ν΄ κ°μΈν€λ‘ 볡νΈννλ λ°©λ²
- λ°μ΄ν°λ₯Ό μμ νκ² μ μ‘ν μ μλ 보μ κ΄μ
- κ°μΈν€ μνΈνλ₯Ό ν΅ν΄ 곡κ°ν€λ‘ 볡νΈννλ λ°©λ²
- μ λ’°ν μ μλ λ¨μ²΄λΌλ κ²μ μΈμ¦νλ κ΄μ
λμ μμ
TCP -> SSL -> HTTP
μ°Έκ³ :
https://joshua1988.github.io/web-development/http-part1/
https://www.cloudflare.com/ko-kr/learning/ssl/what-is-ssl/
https://mangkyu.tistory.com/98