1. HTTP(HyperText Transfer Protocol)
1) κ°λ
μΉ μμμ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μμ²/μλ΅μΌλ‘ μμμ μ£Όκ³ λ°μ λ μ°λ νλ‘ν μ½μ΄λ€. ν΄λΌμ΄μΈνΈμΈ μΉλΈλΌμ°μ μ μλ²λ μ£Όλ‘ μΉ νμ΄μ§(HTML)μΈ ν μ€νΈ κ΅νμ νλλ°, λκ΅°κ° λ€νΈμν¬μμ μ νΈλ₯Ό μ€κ°μ κ°λ‘μ±λ€λ©΄ λ΄μ©μ΄ λ ΈμΆλλ 보μ μ΄μκ° μ‘΄μ¬νλ€.
- νλ¬Έ ν΅μ μ΄κΈ° λλ¬Έμ λμ²μ΄ κ°λ₯νλ€.
- ν΅μ μλλ₯Ό νμΈνμ§ μκΈ° λλ¬Έμ μμ₯μ΄ κ°λ₯νλ€.
- μμ μ±μ μ¦λͺ ν μ μκΈ° λλ¬Έμ λ³μ‘°κ° κ°λ₯νλ€.
- 80λ² ν¬νΈλ₯Ό μ¬μ©νλ€.
2) νΉμ§
- λΉμ°κ²°ν(Connectionless): νλμ μΈμ μμμ ν΄λΌμ΄μΈνΈμ μλ²κ° Requestμ Responseμ μννλ©΄ μΈμ μ΄ λμ΄μ§λ€.
- 무μνμ±(Stateless): μ°κ²°μ λλ μκ° ν΄λΌμ΄μΈνΈμ μλ²μ ν΅μ μ΄ λλλ©° μν μ 보λ μ μ§νμ§ μλλ€.
2. HTTPS(HTTP Secure)
1) κ°λ
μΉ ν΅μ νλ‘ν μ½μΈ HTTPμμ 보μμ΄ κ°νλ νλ‘ν μ½μ΄λ€. μμΌ ν΅μ μμ μΌλ° ν μ€νΈλ₯Ό μ΄μ©νλ λμ μ μΉ μμμ μ 보λ₯Ό μνΈννλ SSLμ΄λ TLS νλ‘ν μ½μ ν΅ν΄ μΈμ λ°μ΄ν°λ₯Ό μνΈννλ€.
- λ€νΈμν¬ μμμ μ΄λ, μμ μ΄ λΆκ°λ₯νλ―λ‘ μμ νλ€.
- κ·Έλ¬λ μνΈννλ κ³Όμ μ΄ μΉ μλ²μ λΆνλ₯Ό μ£Όκ³ μΆκ° λΉμ©μ΄ λ°μνλ€.
- 442λ² ν¬νΈλ₯Ό μ¬μ©νλ€.
2) SSL(Secure Sockets Layer)
- ν΄λΌμ΄μΈνΈκ° μλ²μ μ μν ν μλ²λ ν΄λΌμ΄μΈνΈμκ² SSL μΈμ¦μλ₯Ό μ λ¬νκ³ ν΄λΌμ΄μΈνΈλ SSL μΈμ¦μλ₯Ό λ³΄κ³ μ λ’°ν μ μλ μ¬λμΈμ§ νμΈ ν λ°μ΄ν°λ₯Ό 보λ΄λ λ±μ μ μ°¨λ₯Ό μννλ€.
- μ λ¬λλ λ΄μ©μ΄ λ€λ₯Έ μ¬λμκ² λ ΈμΆλλ κ²μ λ§μ μ μκ³ ν΄λΌμ΄μΈνΈκ° μ μνλ €λ μλ²κ° μ λ’°ν μ μλ μλ²μΈμ§ μ μ μλ€.
- λμΉν€ μνΈνμ 곡μΊν€ μνΈν λ°©μμ νΌν©ν μνΈ μμ€ν μ μ¬μ©νλ€. λμΉν€λ₯Ό 곡κ°ν€ μνΈν λ°©μμΌλ‘ κ΅νν λ€μμ μ΄νμ ν΅μ μ λμΉν€ μνΈν λ°©μμ μ¬μ©νλ€.
- ν΄λΌμ΄μΈνΈκ° μλ²μ μ μνλ©° λλ€ λ°μ΄ν°(Client hello)μ κ°λ₯ν μνΈν λ°©μμ μ μ‘νλ€.
- μλ²κ° Client helloμ λν μλ΅μΌλ‘ μΈμ¦μ(with 곡κ°ν€), λλ€ λ°μ΄ν°(Server hello), μνΈν λ°©μμ μ μ‘νλ€.
- ν΄λΌμ΄μΈνΈμ λΈλΌμ°μ μμ μλ²κ° 건λ€μ€ μΈμ¦μκ° CAμμ λ°κΈλ 건μ§λ₯Ό νμΈνκ³ κ³΅κ°ν€λ‘ μΈμ¦μλ₯Ό 볡νΈννλ€. κ·Έλ¦¬κ³ ν΄λΌμ΄μΈνΈμ μλ²μ λλ€ λ°μ΄ν°λ₯Ό μ‘°ν©νμ¬ Pre Master Secret ν€λ₯Ό μμ±νλ€.
- ν΄λΌμ΄μΈνΈλ 곡κ°ν€λ₯Ό μ΄μ©νμ¬ Pre Master Secret ν€λ₯Ό μνΈννκ³ μλ²λ‘ μ μ‘νλ€.
- μλ²λ Pre Master Secret κ°μ μμ μ λΉλ°ν€λ‘ 볡νΈννλ€.
- Pre Master Secret κ°μ μΌλ ¨μ κ³Όμ μ κ±°μ³ Master Secret κ°μΌλ‘ λ§λ€κ³ μ΄ κ°μ μ΄μ©νμ¬ Session Keyλ₯Ό λ§λ λ€.
- Session Keyλ₯Ό μ΄μ©νμ¬ μλ²μ ν΄λΌμ΄μΈνΈλ λμΉν€ λ°©μμΌλ‘ μνΈν ν΅μ μ νλ€.
3) TLS(Transport Layer Security)
μνΈ νλ‘ν μ½λ‘ SSL νλ‘ν μ½μμ λ°μ νλ€. ν΄λΌμ΄μΈνΈ/μλ² μμ© νλ‘κ·Έλ¨μ΄ λ€νΈμν¬λ‘ ν΅μ μ νλ κ³Όμ μμ λμ², κ°μ, μμ‘°λ₯Ό λ°©μ§νκΈ° μν΄μ μ€κ³λμλ€.
3. HTTPμ Keep Alive
1) κ°λ
HTTPλ λΉμ°κ²°ν(Connectionless) λ°©μμΌλ‘ μ°κ²°μ λ§€λ² λκ³ μλ‘ μμ±νλ ꡬ쑰μΈλ°, μ΄λ Network μΈ‘λ©΄μμ μ΅μ΄ μ°κ²°μ νκΈ° μν΄ λ§μ λΉμ©μ μλΉνλ€. HTTP/1.1λΆν°λ μ΄λ―Έ μ°κ²°λμ΄ μλ TCP μ°κ²°μ μ¬μ¬μ©νλ Keep AliveλΌλ κΈ°λ₯μ Defaultλ‘ μ§μν΄μ TCP Handshake κ³Όμ μ΄ μλ΅λλ―λ‘ μ±λ₯μ΄ ν₯μλ μ μλ€.
- Keep Aliveμ μ μ§ μκ°μ μ°κ²°λ Socketμ I/O Accessκ° λ§μ§λ§ μ’
λ£λ μμ λΆν° μ μλ μκ°(Timeout)κΉμ§ μΈμ
μ μ μ§νλ ꡬ쑰μ΄λ€. μ¦, μ μλ μκ° λ΄μ Accessκ° μ΄λ£¨μ΄μ§λ€λ©΄ κ³μ μ°κ²°λ μνλ₯Ό μ μ§νλ€.
- μλ²μ μ°κ²°μ ν μ μλ Socketμ νμ μ μ΄κΈ° λλ¬Έμ μ μμ κ³μ μ μ§νλ κ²μ μλ²μ μμ€μ λ°μμν¨λ€.
- λ°μ μλ² νκ²½μμ Keep Alive κΈ°λ₯μ μ¬μ©ν κ²½μ° λͺ¨λ μμ²λ§λ€ μ°κ²°μ μ μ§ν΄μΌ νκΈ° λλ¬Έμ νλ‘μΈμ€ μκ° κΈ°νκΈμμ μΌλ‘ λμ΄λλ€. μ¦, λλ μ μ μ μ±λ₯μ΄ μ νλκ³ ν¨μ¨μ΄ λ¨μ΄μ§λ€.
2) HTTP/1.1μ μ§μ 컀λ₯μ
HTTP/1.0μ λ¬λ¦¬ HTTP/1.1μ μ§μ 컀λ₯μ μ Defaultλ‘ νμ±νλμ΄ μλ€. κ·Έλμ HTTP/1.1μμλ λ³λ μ€μ μ νμ§ μλ ν λͺ¨λ 컀λ₯μ μ μ§μ 컀λ₯μ μΌλ‘ μ·¨κΈνλ€.
- HTTP/1.1 μ ν리μΌμ΄μ μ νΈλμμ μ΄ λλ λ€μ 컀λ₯μ μ λμΌλ €λ©΄ Connection : close ν€λλ₯Ό λͺ μν΄μΌ νλ€. λ§μ½ HTTP/1.1 ν΄λΌμ΄μΈνΈλ μλ΅μ Connection : close ν€λκ° μλ€λ©΄, μλ΅ νμλ HTTP/1.1 컀λ₯μ μ κ³μ μ μ§νμλ κ²μΌλ‘ μκ°νλ€.
- Connection : close ν€λλ₯Ό 보λ΄μ§ μκ³ μ»€λ₯μ μ μΈμ λ μ§ λκΈΈ μ μλ€. κ·Έλμ νλμ μ¬μ©μ ν΄λΌμ΄μΈνΈλ μλ²μ κ³ΌλΆνλ₯Ό λ°©μ§νκΈ° μν΄ λλμ‘μ 2κ°μ μ§μ 컀λ₯μ μ μ μ§ν΄μΌ νλ€.
4. HTTP2
HTTP1.1μ νμ¬κΉμ§λ νλ°νκ² μ°μ΄λ HTTP νλ‘ν μ½ λ²μ μ΄μ§λ§ λλΆλΆμ μΉ μλ²μ ν΄λΌμ΄μΈνΈκ° HTTP 2.0μΌλ‘ λμ΄μ€κ³ μλ€.
HTTP2μ νΉμ§μ μ 체 μμ²μ ν΅ν΄ μ§μ°μκ°μ μ€μ΄κ³ μλ΅ λ€μ€νλ₯Ό μ§μνλ©°, νλ‘ν μ½ μ€λ²ν€λλ₯Ό μ΅μννκ³ , μμ² μ°μ μμ μ§μ μ μΆκ°νλ©°, μλ² νΈμλ₯Ό μ§μνλ κ²μ μλ€. μ μ‘λ°©μμ ν μ€νΈ λ°©μμ λ°μ΄λ리 νμμΌλ‘ λ°λμ΄ μλ°©ν₯ μ μ‘μ΄ κ°λ₯ν΄μ‘λ€.