We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
π€μ§κΈμ λͺ¨λ κ²μ HTTP νλ‘ν μ½μ λ΄μμ μ μ‘ν©λλ€. HTTPλ νμ΄νΌν μ€νΈ νΈλμ€νΌ νλ‘ν μ½ μ΄λ λ»μ λλ€.
μ§κΈμ HTTP μλλ€.
TCPλ₯Ό μ§μ μ°κ²°ν΄μ νλ κ²½μ°μλ κ²μμλ²λ νΉμνκ²½μ°μλ§ νλ€. μ¬μ§μ΄ μμ¦ λͺ¨λ°μΌ κ²μ κ°μ κ²½μ°μλ HTTPλ‘ ν΅μ νλ κ΅¬μ‘°λ‘ κ°λ°νλ€. HTTP λΌλκ² μκ°μ΄ νλ₯΄λ©΄μ κ±°μ λͺ¨λ κ²μ μ μ‘ν μ μλλ‘ λ°λμλ€.
TCP : HTTP/1.1, HTTP/2 UDP : HTTP/3 νμ¬ HTTP/1.1 μ£Όλ‘ μ¬μ©νλ€. HTTP/2, HTTP/3 λ μ μ μ¦κ°νλ μΆμΈλ€.
κ·Όλ° μ°λ¦¬λ HTTP/1λ§ λ°°μλμΌλ©΄ λλ€. μλλ©΄ HTTP/2λ HTTP/3λ μ±λ₯κ°μ λ§ ν κ²μ΄κΈ° λλ¬Έ!
νλ‘ν μ½ νμΈνλ €λ©΄ κ°λ°μ λꡬμμ μ΄λ κ² νλ‘ν μ½μ μΈν ν΄μ£Όλ©΄ λλ€. HTTP 1μ λ€ μ°κ³ μκ³ HTTP2 μμ¦ λ§μ΄ μ¬μ©νλ μ€μ΄λ€.
ν΄λΌμ΄μΈνΈμ μλ²μ κ°λ μ μΌλ‘ λΆλ¦¬λ₯Ό νλ€. λΉμ¦λμ€ λ‘μ§μ΄λ λ°μ΄ν°λ μλ²μ λ€ λ°μ΄λ£λλ€. ν΄λΌμ΄μΈνΈλ UI κ·Έλ¦¬κ³ μ¬μ©μ±μλ§ μ§μ€μ νλ€.
μ΄λ κ²νλ©΄ ν΄λΌμ΄μΈνΈμ μλ²κ° κ°κ° λ 립μ μΌλ‘ μ§νν μκ° μλ€.
(Stateful μνλ₯Ό μ μ§νλ€λ κ²μ΄κ³ Stateless μνλ₯Ό μ μ§νμ§ μλλ€λ κ²μ΄λ€.)
π₯ Statefull
μν©1μ²λΌ μ§μ ν λͺ νκ³ λ§ κ±°λκ° κ°λ₯νλ€λ κ². μν©2λ μ§μλ€μ΄ contextλ₯Ό λͺ¨λ₯΄λκΉ μν© μ₯μ κ° λ°μνλ€. νμ§λ§ Stateless κ²½μ°μλ
π₯ Stateless μμ μν©2μ²λΌ λ ΈνΈλΆμ ꡬ맀νλλ° μ§μ2νν μ£Όμ΄(λ ΈνΈλΆ)λ₯Ό μλ§νκ³ 2κ° κ΅¬λ§€νλ€ λ§νκ³ , μ§μ 3νν μ μ©μΉ΄λλ‘ κ΅¬λ§€νκ² λ€κ³ νλ©΄ μ§μ 2μ μ§μ 3μ΄ λ ΈνΈλΆμ 2κ°λ₯Ό μ μ©μΉ΄λλ‘ κ΅¬λ§€ νκ² λ€κ³ μ΄λ―Έ λ€ μλ μνλ€. μ΄κ² λ°λ‘ Statelessμ μ₯μ μ΄λ€. νμ₯μ±μ΄ λλ€λ κ².
μ΄μ²λΌ **Statefull(μνμ μ§)**μ μ€κ°μ μλ²κ° μ₯μ λλ©΄ μμ μ λ€μ ν΄μΌνλ€. Stateless(무μν)λ μ무 μλ²λ νΈμΆν΄λ λλ€. μ²μλΆν° ν΄λΌμ΄μΈνΈκ° μλ²μ μμ²μ ν λ λ°μ΄ν°λ₯Ό λ€ λ΄μμ μμ²νλ€. κ·Έλ¬λ©΄ μλ²λ μνλ₯Ό 보κ΄νμ§ μκ³ κ·Έλ₯ μλ΅λ§ ν΄μ€λ€.
ν΄λΌμ΄μΈνΈκ° μλ²1μ μμ²μ νκ³ μλ²1μ μ₯μ κ° μκΈ°λ©΄ μ€κ³μλ²κ° λ€λ₯Έ μλ²2λ‘ λ겨μ€λ€. κ·Έλμ νμ₯μ±μ΄ μ’λ€.
λͺ¨λ κ²μ 무μνλ‘ μ€κ³ ν μ μλ κ²½μ°λ μκ³ μλ κ²½μ°λ μλ€.
무μν : λ‘κ·ΈμΈμ΄ νμ μλ λ¨μν μλΉμ€ μκ° νλ©΄
μν μ μ§ : λ‘κ·ΈμΈ
λ‘κ·ΈμΈν μ¬μ©μμ κ²½μ° λ‘κ·ΈμΈ νλ€λ μνλ₯Ό μλ²μ μ μ§
μΌλ°μ μΌλ‘ λΈλΌμ°μ μΏ ν€μ μλ² μΈμ λ±μ μ¬μ©ν΄μ μν μ μ§νλ€.
μν μ μ§λ μ΅μνλ§ μ¬μ©νλκ² μ’λ€. (λ‘κ·ΈμΈκ°μ κ²½μ°)
μμ²μνκ³ μλ΅μ νλ©΄ TCP/IP μ°κ²°μ μ’ λ£ν΄ λ²λ¦°λ€.
μμλΌμΈ, ν€λ, 곡백(μ΄ λΆλΆμ 무쑰건 μμ΄μΌνλ€.), λ©μμ§λ°λ μ΄λ κ² κ΅¬μ±λμ΄μλ€.
HTTP μμ² λ©μμ§μ HTTP μλ΅ λ©μμ§λ€.
GET κ²μ / path μ£Όμ / HTTP λ²μ (μμλΆλΆ) λ°λμλ μμ²ν κ² μμΌλ©΄ 곡백μΌλ‘ λ£κ³ μμ²νλ©΄ λλ€.
htmlμ λ°μ΄ν°κ° λ€μ΄μ¨λ€.
start-line = μμ² λΌμΈ request-line / μλ΅ λΌμΈ status-line μμ λΌμΈμ μμ² λ©μμ§μ μνλΌμΈμ΄ μμ΅λλ€. μμ²λΌμΈ(request-line)μλ λ©μλμ μμ² νκ², κ·Έλ¦¬κ³ HTTP λ²μ μ΄ λ€μ΄κ°μΌνλ€. request-line = method SP(곡백) request-target SP(곡백) HTTP-version CRLF
μ) GET //search?q=hello&hl=ko HTTP/1.1 HOST: www.google.com μμ² λ©μμ§ - HTTP Version
status-line = HTTP-version SP(곡백) status-code SP(곡백) reason-phrase CRLF
μμ² μ±κ³΅, μ€ν¨λ₯Ό λνλΈλ€
200 : μ±κ³΅
400 : ν΄λΌμ΄μΈνΈ μμ² μ€λ₯
500 : μλ² λ΄λΆ μ€λ₯
OK : μ¬λμ΄ μ΄ν΄ν μ μλ 짧μ μν μ½λ μ€λͺ κΈ κ³΅μ μ€ν : HTTP-message = start-line*(header-field CRLF)CRLF[message-body] μ¬κΈ°μ CRLFλ enter νμλ€.
HTTP μ μ‘μ νμν λͺ¨λ λΆκ° μ 보 (μ) λ©μμ§ λ°λμ λ΄μ©, λ©μμ§ λ°λμ ν¬κΈ°, μμΆ, μΈμ¦, μμ² ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ ) μ 보, μλ² μ ν리μΌμ΄μ μ 보, μΊμ κ΄λ¦¬ μ 보...
νμ€ ν€λκ° λ무 λ§λ€
νμμ μμμ ν€λ μΆκ° κ°λ₯ helloworld: hihi
μ΄λ κ² κ΅¬λΆλλ€.
HTTP λ©μμ§λ λ§€μ° λ¨μνλ€.
ν¬κ² μ±κ³΅νλ νμ€ κΈ°μ μ λ¨μνμ§λ§ νμ₯ κ°λ₯ν κΈ°μ
The text was updated successfully, but these errors were encountered:
No branches or pull requests
π€μ§κΈμ λͺ¨λ κ²μ HTTP νλ‘ν μ½μ λ΄μμ μ μ‘ν©λλ€.
HTTPλ νμ΄νΌν μ€νΈ νΈλμ€νΌ νλ‘ν μ½ μ΄λ λ»μ λλ€.
β¨λͺ¨λ κ²μ΄λ ?
μλ²κ°μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ λλ λλΆλΆ HTTP μ¬μ©
π₯ κ²°λ‘
μ§κΈμ HTTP μλλ€.
TCPλ₯Ό μ§μ μ°κ²°ν΄μ νλ κ²½μ°μλ κ²μμλ²λ νΉμνκ²½μ°μλ§ νλ€.
μ¬μ§μ΄ μμ¦ λͺ¨λ°μΌ κ²μ κ°μ κ²½μ°μλ HTTPλ‘ ν΅μ νλ κ΅¬μ‘°λ‘ κ°λ°νλ€.
HTTP λΌλκ² μκ°μ΄ νλ₯΄λ©΄μ κ±°μ λͺ¨λ κ²μ μ μ‘ν μ μλλ‘ λ°λμλ€.
π HTTPμ μμ¬
π» κΈ°λ° νλ‘ν μ½
TCP : HTTP/1.1, HTTP/2
UDP : HTTP/3
νμ¬ HTTP/1.1 μ£Όλ‘ μ¬μ©νλ€.
HTTP/2, HTTP/3 λ μ μ μ¦κ°νλ μΆμΈλ€.
κ·Όλ° μ°λ¦¬λ HTTP/1λ§ λ°°μλμΌλ©΄ λλ€. μλλ©΄ HTTP/2λ HTTP/3λ μ±λ₯κ°μ λ§ ν κ²μ΄κΈ° λλ¬Έ!
νλ‘ν μ½ νμΈνλ €λ©΄ κ°λ°μ λꡬμμ μ΄λ κ² νλ‘ν μ½μ μΈν ν΄μ£Όλ©΄ λλ€. HTTP 1μ λ€ μ°κ³ μκ³ HTTP2 μμ¦ λ§μ΄ μ¬μ©νλ μ€μ΄λ€.
β ν΄λΌμ΄μΈνΈ μλ² κ΅¬μ‘°
ν΄λΌμ΄μΈνΈμ μλ²μ κ°λ μ μΌλ‘ λΆλ¦¬λ₯Ό νλ€.
λΉμ¦λμ€ λ‘μ§μ΄λ λ°μ΄ν°λ μλ²μ λ€ λ°μ΄λ£λλ€.
ν΄λΌμ΄μΈνΈλ UI κ·Έλ¦¬κ³ μ¬μ©μ±μλ§ μ§μ€μ νλ€.
μ΄λ κ²νλ©΄ ν΄λΌμ΄μΈνΈμ μλ²κ° κ°κ° λ 립μ μΌλ‘ μ§νν μκ° μλ€.
π 무μν νλ‘ν μ½ (Stateless)
- μλ²κ° ν΄λΌμ΄μΈνΈμ μνλ₯Ό 보쑴 νμ§ μλλ€.
(Stateful μνλ₯Ό μ μ§νλ€λ κ²μ΄κ³ Stateless μνλ₯Ό μ μ§νμ§ μλλ€λ κ²μ΄λ€.)
μ΄ν΄νκΈ° μ¬μ΄ μ€λͺ
π₯ Statefull
μν©1μ²λΌ μ§μ ν λͺ νκ³ λ§ κ±°λκ° κ°λ₯νλ€λ κ². μν©2λ μ§μλ€μ΄ contextλ₯Ό λͺ¨λ₯΄λκΉ μν© μ₯μ κ° λ°μνλ€. νμ§λ§ Stateless κ²½μ°μλ
π₯ Stateless
μμ μν©2μ²λΌ λ ΈνΈλΆμ ꡬ맀νλλ° μ§μ2νν μ£Όμ΄(λ ΈνΈλΆ)λ₯Ό μλ§νκ³ 2κ° κ΅¬λ§€νλ€ λ§νκ³ , μ§μ 3νν μ μ©μΉ΄λλ‘ κ΅¬λ§€νκ² λ€κ³ νλ©΄ μ§μ 2μ μ§μ 3μ΄ λ ΈνΈλΆμ 2κ°λ₯Ό μ μ©μΉ΄λλ‘ κ΅¬λ§€ νκ² λ€κ³ μ΄λ―Έ λ€ μλ μνλ€. μ΄κ² λ°λ‘ Statelessμ μ₯μ μ΄λ€. νμ₯μ±μ΄ λλ€λ κ².
- μ₯μ : μλ² νμ₯μ± λμ (μ€μΌμΌ μμ)
- λ¨μ : ν΄λΌμ΄μΈνΈκ° μΆκ° λ°μ΄ν° μ μ‘
μ΄μ²λΌ **Statefull(μνμ μ§)**μ μ€κ°μ μλ²κ° μ₯μ λλ©΄ μμ μ λ€μ ν΄μΌνλ€.
Stateless(무μν)λ μ무 μλ²λ νΈμΆν΄λ λλ€. μ²μλΆν° ν΄λΌμ΄μΈνΈκ° μλ²μ μμ²μ ν λ λ°μ΄ν°λ₯Ό λ€ λ΄μμ μμ²νλ€.
κ·Έλ¬λ©΄ μλ²λ μνλ₯Ό 보κ΄νμ§ μκ³ κ·Έλ₯ μλ΅λ§ ν΄μ€λ€.
ν΄λΌμ΄μΈνΈκ° μλ²1μ μμ²μ νκ³ μλ²1μ μ₯μ κ° μκΈ°λ©΄ μ€κ³μλ²κ° λ€λ₯Έ μλ²2λ‘ λ겨μ€λ€. κ·Έλμ νμ₯μ±μ΄ μ’λ€.
β μ€λ¬΄νκ³
λͺ¨λ κ²μ 무μνλ‘ μ€κ³ ν μ μλ κ²½μ°λ μκ³ μλ κ²½μ°λ μλ€.
무μν : λ‘κ·ΈμΈμ΄ νμ μλ λ¨μν μλΉμ€ μκ° νλ©΄
μν μ μ§ : λ‘κ·ΈμΈ
λ‘κ·ΈμΈν μ¬μ©μμ κ²½μ° λ‘κ·ΈμΈ νλ€λ μνλ₯Ό μλ²μ μ μ§
μΌλ°μ μΌλ‘ λΈλΌμ°μ μΏ ν€μ μλ² μΈμ λ±μ μ¬μ©ν΄μ μν μ μ§νλ€.
μν μ μ§λ μ΅μνλ§ μ¬μ©νλκ² μ’λ€. (λ‘κ·ΈμΈκ°μ κ²½μ°)
π λΉμ°κ²°μ±
μμ²μνκ³ μλ΅μ νλ©΄ TCP/IP μ°κ²°μ μ’ λ£ν΄ λ²λ¦°λ€.
μ₯μ
(μ) μΉ λΈλΌμ°μ μμ κ³μ μ°μν΄μ κ²μ λ²νΌμ λλ₯΄μ§λ μλλ€.
λ¨μ
β HTTP λ©μμ§ (μ μΌ μ€μ) β
μμλΌμΈ, ν€λ, 곡백(μ΄ λΆλΆμ 무쑰건 μμ΄μΌνλ€.), λ©μμ§λ°λ μ΄λ κ² κ΅¬μ±λμ΄μλ€.
HTTP μμ² λ©μμ§μ HTTP μλ΅ λ©μμ§λ€.
HTTP μμ² λ©μμ§
GET κ²μ / path μ£Όμ / HTTP λ²μ (μμλΆλΆ)
λ°λμλ μμ²ν κ² μμΌλ©΄ 곡백μΌλ‘ λ£κ³ μμ²νλ©΄ λλ€.
HTTP μλ΅ λ©μμ§
htmlμ λ°μ΄ν°κ° λ€μ΄μ¨λ€.
μμλΌμΈ
start-line = μμ² λΌμΈ request-line / μλ΅ λΌμΈ status-line
μμ λΌμΈμ μμ² λ©μμ§μ μνλΌμΈμ΄ μμ΅λλ€.
μμ²λΌμΈ(request-line)μλ λ©μλμ μμ² νκ², κ·Έλ¦¬κ³ HTTP λ²μ μ΄ λ€μ΄κ°μΌνλ€.
request-line = method SP(곡백) request-target SP(곡백) HTTP-version CRLF
βμμ² λ©μμ§- HTTP λ©μλ β μ§μ§ μ€μ
μμ² λ©μμ§ - μμ² λμ (/search?q=hello&hl=ko)
μ) GET //search?q=hello&hl=ko HTTP/1.1
HOST: www.google.com
μμ² λ©μμ§ - HTTP Version
μλ΅ λ©μμ§ status-line
status-line = HTTP-version SP(곡백) status-code SP(곡백) reason-phrase CRLF
βμλ΅ λ©μμ§ μνμ½λβ (μμ² μ€μ)
μμ² μ±κ³΅, μ€ν¨λ₯Ό λνλΈλ€
200 : μ±κ³΅
400 : ν΄λΌμ΄μΈνΈ μμ² μ€λ₯
500 : μλ² λ΄λΆ μ€λ₯
OK : μ¬λμ΄ μ΄ν΄ν μ μλ 짧μ μν μ½λ μ€λͺ κΈ
곡μ μ€ν : HTTP-message = start-line*(header-field CRLF)CRLF[message-body]
μ¬κΈ°μ CRLFλ enter νμλ€.
HTTP ν€λ
ex)Host:www.google.com
HTTP ν€λμ μ©λ
HTTP μ μ‘μ νμν λͺ¨λ λΆκ° μ 보
(μ) λ©μμ§ λ°λμ λ΄μ©, λ©μμ§ λ°λμ ν¬κΈ°, μμΆ, μΈμ¦, μμ² ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ ) μ 보, μλ² μ ν리μΌμ΄μ μ 보, μΊμ κ΄λ¦¬ μ 보...
νμ€ ν€λκ° λ무 λ§λ€
νμμ μμμ ν€λ μΆκ° κ°λ₯
helloworld: hihi
HTTP λ©μμ§ λ°λ
π λ¨μν¨ νμ₯ κ°λ₯
μμμ€
머리
λ°λ
μ΄λ κ² κ΅¬λΆλλ€.
HTTP λ©μμ§λ λ§€μ° λ¨μνλ€.
ν¬κ² μ±κ³΅νλ νμ€ κΈ°μ μ λ¨μνμ§λ§ νμ₯ κ°λ₯ν κΈ°μ
The text was updated successfully, but these errors were encountered: