JAVA

#41 [JAVA] HTTP, HTTPS, SSL, TLS, WAS

dP fla 2022. 11. 29. 20:38

πŸ“Œ HTTP

: Hyper Text Transfer Protocol

μΈν„°λ„·μ—μ„œ 데이터λ₯Ό 주고받을 수 μžˆλŠ” ν”„λ‘œν† μ½œ (=κ·œμΉ™)

일반적으둜 TCP/IP 톡신 μœ„μ—μ„œ λ™μž‘ν•˜λ©° κΈ°λ³Έ ν¬νŠΈλŠ” 80번

 

πŸ’‘ HTTP Request & HTTP Response 

HTTP Request & HTTP Response

πŸ’‘ HTTP μš”μ²­ λ©”μ„œλ“œ

βœ… GET : μ‘΄μž¬ν•˜λŠ” μžμ›μ— λŒ€ν•œ μš”μ²­

βœ… POST : μƒˆλ‘œμš΄ μžμ›μ„ 생성

βœ… PUT : μ‘΄μž¬ν•˜λŠ” μžμ›μ— λŒ€ν•œ λ³€κ²½

βœ… DELETE : μ‘΄μž¬ν•˜λŠ” μžμ›μ— λŒ€ν•œ μ‚­μ œ

 

πŸ“Œ HTTPS

: Hyper Text Transfer Protocol Secure

HTTP ν”„λ‘œν† μ½œμ˜ λ³΄μ•ˆ 버전

μ„œλ²„μ™€ μ£Όκ³ λ°›λŠ” 데이터가 μ•”ν˜Έν™”λ˜κΈ° λ•Œλ¬Έμ— μ›Ήμ‚¬μ΄νŠΈμ— 좔가적인 보호λ₯Ό 제곡

πŸ‘‰ 개인 데이터λ₯Ό ν›”μΉ˜κ±°λ‚˜, ν•΄ν‚Ήν•˜κ±°λ‚˜ λ³Ό 수 없도둝 μž‘λ™


πŸ“Œ SSL

: Secure Sockets Layer 

μ›Ή μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈμ˜ 톡신 μ•”ν˜Έν™” 기반 인터넷 λ³΄μ•ˆ ν”„λ‘œν† μ½œ

인터넷 ν†΅μ‹ μ˜ κ°œμΈμ •λ³΄ 보호, 인증, 데이터 무결성을 보μž₯ν•˜κΈ°μœ„ν•΄ 개발

SSL/TLSλ₯Ό μ‚¬μš©ν•˜λŠ” μ›Ήμ‚¬μ΄νŠΈμ˜ URLμ—λŠ” "HTTP"λŒ€μ‹  "HTTPS"κ°€ 있음

 

πŸ“Œ TLS

: Transport Layer Security

SSL 3.0의 λ³΄μ•ˆ 취약점을 λ³΄μ™„ν•œ 톡신 λ³΄μ•ˆ ν”„λ‘œν† μ½œ

SSL을 λ³΄μ™„ν•œ 것이 TLSμ§€λ§Œ, 인터넷에 μ μš©λ˜λŠ” 톡신 λ³΄μ•ˆ ν”„λ‘œν† μ½œμ„ μ „λΆ€ 톡틀어 SSL이라 뢀름

🚨 SSL의 λ§ˆμ§€λ§‰ 버전인 3.0이 κΈˆμ§€λ˜μ–΄ ν˜„μž¬ μ‚¬μš©μ€‘μΈ 톡신 λ³΄μ•ˆ ν”„λ‘œν† μ½œμ€ λͺ¨λ‘ TLSμž„


πŸ“Œ Web Server

: ν΄λΌμ΄μ–ΈνŠΈκ°€ μ›Ή λΈŒλΌμš°μ €μ—μ„œ νŽ˜μ΄μ§€ μš”μ²­μ„ ν•˜λ©΄ μ›Ήμ„œλ²„μ—μ„œ κ·Έ μš”μ²­μ„ λ°›μ•„ 정적컨텐츠λ₯Ό μ œκ³΅ν•˜λŠ” μ„œλ²„

πŸ‘‰ μ›Ή λΈŒλΌμš°μ € ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° HTTP μš”μ²­μ„ 받아듀이고 HTMLλ¬Έμ„œμ™€ 같은 μ›ΉνŽ˜μ΄μ§€λ₯Ό λ°˜ν™˜ν•˜λŠ” 컴퓨터 ν”„λ‘œκ·Έλž¨

πŸ’‘ 정적 컨텐츠 : λ‹¨μˆœ HTML λ¬Έμ„œ, CSS, JAVA SCRIPT, 이미지, 파일 λ“± μ¦‰μ‹œ 응닡 κ°€λŠ₯ν•œ 컨텐츠

βœ… μ›Ή μ„œλ²„κ°€ 동적 컨텐츠λ₯Ό μš”μ²­λ°›μœΌλ©΄ WASμ—κ²Œ ν•΄λ‹Ή μš”μ²­μ„ λ„˜κ²¨μ£Όκ³ , WASμ—μ„œ μ²˜λ¦¬ν•œ κ²°κ³Όλ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ „λ‹¬ν•΄μ£ΌλŠ” μ—­ν• 

ex) APACHE 

web server

πŸ“Œ WAS

: WASλŠ” μ›Ήμ„œλ²„μ™€ μ›Ή μ»¨ν…Œμ΄λ„ˆκ°€ 합쳐진 ν˜•νƒœλ‘œμ„œ, μ›Ή μ„œλ²„ λ‹¨λ…μœΌλ‘œλŠ” μ²˜λ¦¬ν•  수 μ—†λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ‘°νšŒλ‚˜ λ‹€μ–‘ν•œ λ‘œμ§μ²˜λ¦¬κ°€ ν•„μš”ν•œ 동적 컨텐츠λ₯Ό 제곡

βœ… JSP, Servlet κ΅¬λ™ν™˜κ²½μ„ μ œκ³΅ν•΄μ£ΌκΈ° λ•Œλ¬Έμ— μ›Ή μ»¨ν…Œμ΄λ„ˆ ν˜Ήμ€ μ„œλΈ”λ¦Ώ μ»¨ν…Œμ΄λ„ˆλΌκ³ λ„ 뢈림

πŸ‘‰ 인터넷 μƒμ—μ„œ HTTP ν”„λ‘œν† μ½œμ„ 톡해 μ‚¬μš©μž μ»΄ν“¨ν„°λ‚˜ μž₯μΉ˜μ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μˆ˜ν–‰ν•΄μ£ΌλŠ” λ―Έλ“€μ›¨μ–΄λ‘œμ„œ, 주둜 동적 μ„œλ²„ 컨텐츠λ₯Ό μˆ˜ν–‰ν•˜λŠ” κ²ƒμœΌλ‘œ μ›Ήμ„œλ²„μ™€ ꡬ별이 되며, 주둜 데이터 베이슀 μ„œλ²„μ™€ 같이 μˆ˜ν–‰

ex) Tomcat

WAS


πŸ“Œ LOAD BALANCING

LOAD BALANCING의 μ’…λ₯˜


πŸ“Œ Blocking & Non-Blocking

πŸ’‘ Blocking

: μžμ‹ μ˜ μž‘μ—…μ„ μ§„ν–‰ν•˜λ‹€κ°€ λ‹€λ₯Έ 주체의 μž‘μ—…μ΄ μ‹œμž‘λ˜λ©΄ λ‹€λ₯Έ μž‘μ—…μ΄ 끝날 λ•ŒκΉŒμ§€ κΈ°λ‹€λ Έλ‹€κ°€ μžμ‹ μ˜ μž‘μ—…μ„ μ‹œμž‘ν•˜λŠ” 것

호좜된 ν•¨μˆ˜κ°€ μžμ‹ μ˜ μž‘μ—…μ„ μ™„λ£Œν•  λ•ŒκΉŒμ§€ λ¦¬ν„΄ν•˜μ§€ μ•ŠμŒ

βœ… μ œμ–΄κΆŒ : ν˜ΈμΆœν•œ ν•¨μˆ˜

 

πŸ’‘ Non-Blocking

: λ‹€λ₯Έ 주체의 μž‘μ—…μ— 관련없이 μžμ‹ μ˜ μž‘μ—…μ„ ν•˜λŠ” 것

호좜된 ν•¨μˆ˜κ°€ μ œμ–΄κΆŒμ„ λ°”λ‘œ ν˜ΈμΆœν•œ ν•¨μˆ˜μ—κ²Œ λ„˜κ²¨μ£Όμ–΄ λ‹€λ₯Έ 일을 ν•  수 μžˆλ„λ‘ 함

βœ… μ œμ–΄κΆŒ : 호좜된 ν•¨μˆ˜

λ°˜μ‘ν˜•