HTTP
HTTP Header
Request Header
ν΄λΌμ΄μΈνΈ λΈλΌμ°μ μμ HTTP νλ‘ν μ½μ μ΄μ©νμ¬ μμ² μ 보λ₯Ό μΉ μλ²λ‘ μ μ‘ν λ HTTP μμ² ν€λμ λΆκ°μ μΈ μ 보λ₯Ό λ΄μ μ μ‘νλ€.
- Accept
- ν΄λΌμ΄μΈνΈκ° μ²λ¦¬νλ λ―Έλμ΄ νμ
- Accept-encoding
- ν΄λΌμ΄μΈνΈκ° ν΄μν μ μλ μΈμ½λ© λ°©μ
- Accept-language
- ν΄λΌμ΄μΈνΈκ° μ§μνλ μΈμ΄
- Connection
- ν΄λΌμ΄μΈνΈμ μλ²μ μ°κ²° λ°©μ
- keep-alive : ν΄λΌμ΄μΈνΈμ μ μ μ μ§
- close : ν΄λΌμ΄μΈνΈμ μ μ μ€λ¨
- ν΄λΌμ΄μΈνΈμ μλ²μ μ°κ²° λ°©μ
- Host
- νΈμ€νΈ μ΄λ¦ URI μ PORT λ²νΈ μ 보
- User-agent
- ν΄λΌμ΄μΈνΈ λΈλΌμ°μ μ 보
Response Header
μλ²κ° HTTP νλ‘ν μ½μ μ΄μ©νμ¬ ν΄λΌμ΄μΈνΈμ μμ²μ λν΄ μλ΅ν λ λΆκ°μ μΈ μ 보λ₯Ό μλ΅ ν€λμ λ΄μ μ μ‘νλ€.
- Connection
- ν΄λΌμ΄μΈνΈμ μλ²μ μ°κ²° λ°©μ μ€μ
- keep-alive : ν΄λΌμ΄μΈνΈμ μ μ μ μ§
- close : ν΄λΌμ΄μΈνΈμ μ μ μ€λ¨
- ν΄λΌμ΄μΈνΈμ μλ²μ μ°κ²° λ°©μ μ€μ
- Content-Length
- μμ²ν νμΌμ λ°μ΄ν° κΈΈμ΄
- Content-Type
- ν€λ μλ΅ λ¬Έμμ mime νμ
- Date
- νμ¬ μΌμλ₯Ό GMT νμμΌλ‘ μ§μ
- Server
- μΉ μλ² μ 보
CORS κ΄λ ¨μΌλ‘ **Access-Control-Allow-Origin: *** μΌλ‘ μ€μ λλ©΄ λλ©μΈ ꡬλΆμμ΄ XHR νΈμΆμ΄ κ°λ₯ν΄μ§λ€.
Keep-alive κ΄λ ¨
- λλ°μ΄μ€ κ°μ 컀λ₯μ
μ μ μ§νλ κΈ°λ² μΌλ‘ TCP μ HTTP κ° μ ν λ€λ₯΄λ€.
- TCP λ OSκ° μ μ΄ νκ³ , HTTP λ μΉ μλ²κ° μ μ΄ νλ€.
- HTTP 1.1 μ΄μμμ μ§μλλ μ€ν©μΌλ‘ ν€λμ μ€μ νλ©΄ λλ€.
- max μμ²μ μ μ ν¨μκ°(timeout) μΌλ‘ ꡬμ±λλ€.
Timeout μ’ λ₯
Connection Timeout
Connection μ ꡬμ±νλλ° μμλλ μκ°
Read Timeout
Server μμ λ°μ΄ν°λ₯Ό μμ ν λ°μλ κΉμ§ 걸리λ μκ°
MIME
μλ²κ° ν΄λΌμ΄μΈνΈμκ² μ μ‘λλ λ¬Έμμ λν μ νμ μ§μΉνλ νμ
Syntax
[νμΌμμ’
λ₯]/[νμΌνμ
]
Type List
- text
- ν μ€νΈ νμΌ
- text/plain, text/html, text/css, text/javascript
- multipart
- μ΄λ―Έμ§ νμΌ (λΉλμ€ μ μΈ)
- audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav
- audio
- μ€λμ€ νμΌ
- audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav
- video
- λΉλμ€ νμΌ
- video/webm, video/ogg
- application
- λͺ¨λ λ°μ΄λ리 νμ
- application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/pdf
νμ΄μ§μ μ ν λ°©μ
sendRedirect
μλ‘μ΄ μμ²μ μμ±νμ¬ λκΈ΄λ€.
forward
μ λΉν΄ λ리λ€.
response.sendRedirect(url);
forward
μμ² λμμ μλ‘μ΄ λμμΌλ‘ μ λ¬νλ€.
sendRedirect
μ λΉν΄ λΉ λ₯΄λ€.
RequestDispatcher dispatcher = request.getRequestDispatcher(url);
dispatcher.forward(request, response);
Servlet Life Cycle
- Client μ Request μ λ°λΌ Servlet Engine μ΄ Servlet μ λ‘λνλ€.
- λ‘λλ Servlet μ μ΄κΈ°ν νκΈ° μν΄ Servlet μ
init method
λ₯Ό νΈμΆνλ€. - Servlet κ°μ²΄λ κ° Request μ λ°λ₯Έ μ²λ¦¬λ₯Ό νλ€.
- μ΅μ’
μ μΌλ‘λ
distroy method
λ₯Ό νΈμΆνμ¬ Servlet μ μ κ±°νλ€.
HTTP METHOD
- GET
- URLλ‘ νμΌ λ° μμλ±μ κ°μ Έμ¬ μ μλλ‘ μμ²
- POST
- Request λ‘ μ λ¬λ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ μλ²μ μμ²
- μνμ λͺ©μ μ΄ κ°ν¨
- DELETE
- λ°μ΄ν° μμ μ μμ²
- PUT
- Request λ‘ μ λ¬λλ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ μλ²μ μμ²
- κΈ°μ€ λ°μ΄ν°κ° μμλλ μμ±, μμλλ μμ
- PATCH
- λ³κ²½λ λ°μ΄ν°λ§ μ λ¬νμ¬ μ λ°μ΄νΈλ₯Ό μμ²ν¨
Network Handshaking
- ARC (Acknowledgement) : μ‘μ λ λ©μΈμ§κ° μ μμ μΌλ‘ μμ λμμμ μ‘μ μΈ‘μΌλ‘ μλ΅νλ κ²
- SYN (Synchronize) : μ°κ²°μμ λ° νμ μ κ°μ μ©λλ‘ μ¬μ©
- FIN (Finish) : μ°κ²°ν΄μ λ° νμ μ’ κ²°μ μ©λλ‘ μ¬μ©
μ°κ²°
ν΄μ
HTTP 2.0 β