[TIL] Interaction with Sever

miniyoung37Β·2019λ…„ 9μ›” 27일
0

TIL

λͺ©λ‘ 보기
5/49

πŸ‘‰ Browser

λŒ€ν‘œμ μΈ 터미널 ex) 크둬, 웨일

πŸ‘‰ Client

ν„°λ―Έλ„μ˜ 역할을 μˆ˜ν–‰ν•˜λŠ” 컴퓨터, μ‚¬μš©μž μž…λ ₯을 주둜 μˆ˜ν–‰, μ„œλ²„μ— λŒ€ν•œ 응닡을 화면에 ν‘œμ‹œ
Messaging patterns
Request-Response : λŒ€ν‘œμ μœΌλ‘œ HTTPκ°€ μ‚¬μš©ν•˜λŠ” λ©”μ‹œμ§• νŒ¨ν„΄, 보톡 λ™κΈ°μ μœΌλ‘œ μž‘λ™ν•˜λ©°, 연결이 열리면 응닡이 μ „λ‹¬λ λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦¬κ±°λ‚˜, timeout 전달
Publish-Subscribe : μˆ˜μ‹ μžκ°€ μ§€μ •λ˜μ§€ μ•ŠλŠ” λŒ€μ‹ , λ©”μ‹œμ§€κ°€ λ°œν–‰λ˜λ©΄ ꡬ독을 μ‹ μ²­ν•œ μˆ˜μ‹ μžμ—κ²Œ μΌκ΄„μ μœΌλ‘œ 전달, 비동기 λ©”μ‹œμ§•μ΄λ©°, λ©”μ‹œμ§€ 브둜컀 λ˜λŠ” Event bus라고 λΆˆλ¦¬λŠ” 것이 쀑간에 κ΅¬ν˜„λ˜μ–΄μ•Ό 함
Push technology(server push)
: Publish-subscribe λͺ¨λΈμ˜ 일쒅, 전솑 μš”μ²­μ΄ ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° μ‹œμž‘λ˜μ§€ μ•ŠμŒ, WebSocket ν”„λ‘œν† μ½œμ„ μ΄μš©ν•΄ κ΅¬ν˜„ κ°€λŠ₯

πŸ‘‰ Server

μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μ»΄ν“¨ν„°λ‘œ, λ‹€μˆ˜μ˜ ν΄λΌμ΄μ–ΈνŠΈ μ»΄ν“¨ν„°μ˜ μš”μ²­μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ 쑴재
Web Server, File Server λ“±, μ›ΉνŽ˜μ΄μ§€ μ§€μ›μ΄λ‚˜, 곡유 λ°μ΄ν„°μ˜ 처리 및 μ €μž₯ λ“±μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ 주둜 μˆ˜ν–‰

πŸ‘‰ API

HTTP μš”μ²­μœΌλ‘œ 원격 μ„œλ²„μ— μš”μ²­ ν•  수 μžˆλ„λ‘ μ™ΈλΆ€λ‘œ λ…ΈμΆœλœ μΆ”μƒν™”λœ μΈν„°νŽ˜μ΄μŠ€
μ„œλ²„μžμ›μ„ 잘 κ°€μ Έλ‹€ μ“Έμˆ˜ 있게 λ§Œλ“€μ–΄ 놓은 β†’ interface
GET/message : 메세지 전달
POST/message : 메세지 μ €μž₯(μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ JSON의 ν˜•νƒœλ‘œ 전달)

REST

: API λ””μžμΈμ— μžˆμ–΄μ„œ HTTP ν”„λ‘œν† μ½œμ„ μ˜λ„μ— 맞게 μ‚¬μš©ν•˜λ„λ‘ μ •μ˜λœ 아킀텍쳐 μŠ€νƒ€μΌ
β†’ URIλŠ” μ •λ³΄μ˜ μžμ›μ„ ν‘œν˜„, μžμ›μ— λŒ€ν•œ ν–‰μœ„λŠ” HTTP Method둜 ν‘œν˜„

πŸ‘‰ HTTP

μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈκ°€ 주둜HTML λ“±μ˜ λ¬Έμ„œλ₯Ό μ£Όκ³ λ°›λŠ” 데 μ‚¬μš©ν•˜λŠ” ν”„λ‘œν† μ½œ
κ·œμ•½κ³Ό κ·œμΉ™μ„ 가지고 톡신
TCP/IP
항상 μš”μ²­κ³Ό μ‘λ‹΅μœΌλ‘œ 이루어진닀.(client β†’ server) μ›ν•˜λŠ” μš”μ²­μ˜ 데이터가 없어도 응닡을 ν•΄μ•Όν•œλ‹€.
Http μš”μ²­

: μ–΄λ””μ„œ λ³΄λ‚΄λŠ” μš”μ²­μΈκ°€, μ–΄λ–€ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό μ΄μš©ν•΄ λ³΄λƒˆλŠ”κ°€ : methodκ°€ bodyλ₯Ό κ°€μ§€λŠ” 지 확인

응닡도 header와bodyꡬ쑰λ₯Ό 가진닀.
맀 httpμš”μ²­μ€ λͺ¨λ‘ 독립적 β†’ stateλ₯Ό 가지고 μžˆμ§€μ•Šλ‹€.
connectionless : ν•œλ²ˆμ˜ μš”μ²­μ—λŠ” ν•œλ²ˆμ˜ 응닡을 ν•œλ‹€.

πŸ‘‰ AJAX

μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ΄μš©ν•΄μ„œ λΉ„λ™κΈ°μ μœΌλ‘œ μ„œλ²„μ™€ λΈŒλΌμš°μ €κ°€ 데이터λ₯Ό μ£Όκ³  λ°›λŠ” 방식을 의미
전체 νŽ˜μ΄μ§€κ°€ μ•„λ‹Œ μΌλΆ€λΆ„λ§Œ κ°±μ‹  κ°€λŠ₯.(JSONμ΄λ‚˜ xmlν˜•νƒœλ‘œ ν•„μš”ν•œ λ°μ΄ν„°λ§Œ λ°›μ•„ κ°±μ‹ κ°€λŠ₯) β†’ 속도 차이 λ•Œλ¬Έμ— 이용
XMLHttpRequest : μ„œλ²„μ™€ 자유둭게 톡신가λŠ₯

단점

νžˆμŠ€ν† λ¦¬ 관리가 μ•ˆλœλ‹€. μ—°μ†μ μœΌλ‘œ 데이터λ₯Ό μš”μ²­ν•˜λ©΄ μ„œλ²„ λΆ€ν•˜κ°€ 증가할 수 μžˆλ‹€. XMLHttpRequestλ₯Ό 톡해 톡신을 ν•˜λŠ” 경우 μ‚¬μš©μžμ—κ²Œ μ•„λ¬΄λŸ° 진행 정보λ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠλŠ”λ‹€.
μ‚¬μš©μžκ°€ νŽ˜μ΄μ§€λ₯Ό λ– λ‚˜κ±°λ‚˜ μ˜€μž‘λ™ν•  μš°λ €κ°€ μžˆλ‹€.

πŸ—Ώ Browser와 Server κ°„μ˜ 관계λ₯Ό μƒκ°ν•˜κ³ , μ–΄λ–»κ²Œ 톡신을 ν•˜λŠ”μ§€, HTTP와 API에 λŒ€ν•΄μ„œ λ‚˜λ§Œμ˜ ν‘œν˜„μ‹μœΌλ‘œ μ΄ν•΄ν•˜λ„λ‘ ν•΄μ•Όκ² λ‹€.

profile
TIL record

0개의 λŒ“κΈ€