TIL 35: [Web Server] 기초

μ˜€λŠ˜μ€ μ‹€μ§ˆμ μœΌλ‘œ μ›Ήμ„œλ²„κ°€ μ–΄λ–»κ²Œ μ—°κ²°λ˜λŠ”μ§€μ— λŒ€ν•΄ κ³΅λΆ€ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€! 쀑간에 λ…ΈνŠΈλΆμ΄ κ³ μž₯λ‚ λ»”ν•œ μœ„κΈ°λ„ μ˜€κΈ΄ν–ˆμ§€λ§Œ,,, 일단 잘 κ³΅λΆ€λŠ” 된 것 κ°™μŠ΅λ‹ˆλ‹€. 이전에 κ°„λ‹¨ν•˜κ²Œ μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ 간에 μ—°κ²°λ˜μ–΄ 있고, CORS와 Preflight 등에 λŒ€ν•΄ κ°„λ‹¨νžˆ κ°œλ… 정도 λ°°μ› μ—ˆλŠ”λ°μš”. μ˜€λŠ˜μ„ 톡해 μ‹€μ§ˆμ μœΌλ‘œ μ–΄λ–»κ²Œ μ μš©λ˜λŠ”μ§€μ— λŒ€ν•΄ μ•Œμ•„κ°ˆ 수 μžˆλŠ” κΈ°νšŒκ°€ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ Node.jsκ°€ μ–΄λ–€ λ°©μ‹μœΌλ‘œ κ΅¬ν˜„λ˜λŠ”μ§€λ₯Ό μ’€ μ•Œμ•„λ³Ό 수 μžˆλŠ” κΈ°νšŒμ˜€μŠ΅λ‹ˆλ‹€. μ˜€λŠ˜λ„ μ œκ°€ μ’€ λ‚―μ„€μ—ˆλ˜ λΆ€λΆ„ μœ„μ£Όλ‘œ 정리해보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.

 

 

defaultCorsHeaders

μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈμ˜ λ¦¬μ†ŒμŠ€κ°€ 같은 κ³΅κ°„μ—μ„œ κ΄€λ¦¬λ˜μ—ˆλ˜ 반면, μ΅œκ·Όμ—λŠ” λ‹€λ₯Έ κ³΅κ°„μ—μ„œ μ„œλ²„λ₯Ό 톡해 데이터λ₯Ό μ£Όκ³ λ°›κ²Œ λ˜λ©΄μ„œ 이λ₯Ό 관리할 수 μžˆλŠ” λ‹€μ–‘ν•œ 방법이 μƒκ²¨λ‚˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ·Έ 쀑 ν•˜λ‚˜κ°€ defaultCorsHeader라고 μƒκ°ν•©λ‹ˆλ‹€. μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈκ°€ λ‹€λ₯Έ 곡간에 있게 λ˜λ©΄μ„œ λΈŒλΌμš°μ €μ—μ„œ 크둜슀 도메인 μš”μ²­μ€ 기본적으둜 μ œν•œλ˜μ–΄μžˆκ²Œ λ©λ‹ˆλ‹€. 그에 따라 기본적으둜 μ–΄λ–€ 도메인, μ–΄λ–€ λ©”μ†Œλ“œ, μ–΄λ–€ ν—€λ”μ˜ λ‚΄μš©, μ–Όλ§ˆκ°„μ˜ preflight request 섀정해쀄건지 λ“± μ„€μ •ν•  수 있게 λ©λ‹ˆλ‹€.

 

 

 

Node.js

μ•žμ„œ λΈŒλΌμš°μ €μ™€ μ„œλ²„λŠ” μ„œλ‘œ μš”μ²­κ³Ό 그에 μ•Œλ§žλŠ” 응닡을 μ£Όκ³  받을 수 μžˆμ–΄μ•Ό 함을 μ•Œ 수 μžˆμ—‡μŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œ node.jsλŠ” HTTPμš”μ²­μ„ λ³΄λ‚΄κ±°λ‚˜, 응닡을 받을 수 μžˆλŠ” 도ꡬλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. μ²˜μŒμ— 이 뢀뢄을 μ–΄λ–»κ²Œ ν™œμš©ν•΄μ•Όν• μ§€ 감이 잘 μ˜€μ§€ μ•Šμ•„μ„œ νŽ˜μ–΄λΆ„μ˜ 도움을 λ°›μ•„ HTTP νŠΈλžœμ μ…˜ ν•΄λΆ€λΌλŠ” 곡식 κ°€μ΄λ“œ λ¬Έμ„œλ₯Ό μ°Έμ†Œν•΄μ„œ 곡뢀할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

평생 κ³΅λΆ€ν•˜λ©΄μ„œ κ²ͺμ—ˆλ˜ 문제: μ•”κΈ°. λ°˜λ³΅ν•™μŠ΅μ„ 해도 잘 μ™Έμ›Œμ§€μ§€ μ•ŠλŠ” 제 머리 λ•Œλ¬Έμ— μ΄ˆλ“±ν•™κ΅ λ•ŒλΆ€ν„° 슀트레슀λ₯Ό λ°›μ•˜λ˜ 기얡이 μžˆλŠ”λ°μš”. μ—­μ‹œλ‚˜ μ—¬κΈ°μ„œλ„ 틀이 잘 μ•”κΈ°κ°€ λ˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. λ…Όλ¦¬κ΅¬μ‘°μ˜ 흐름은 μ΄ν•΄ν•˜λ©΄μ„œ μ™ΈμšΈ 수 μžˆμ§€λ§Œ 어디에 μ€‘κ΄„ν˜Έ, λŒ€κ΄„ν˜Έ, 콀마, 온점 등을 μ¨μ•Όν•˜λŠ”μ§€λŠ” μ•„μ§κΉŒμ§€ 잘 μ™Έμ›Œμ§€μ§€ μ•Šλ„€μš”... λ”λ”μš± λ°˜λ³΅ν•΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€!

 

 

 

Sprint Q

Content-Type 이 text/plain일 λ•Œ preflight request λ°œμƒν•˜μ§€ μ•ŠλŠ” 이유

  • Content-Type이 text/plain κ²½μš°μ—λŠ” λ‹¨μˆœ μš”μ²­μ˜ κ²½μš°μ΄κΈ°μ—” 사전 μš”μ²­μ„ μƒλž΅ν•©λ‹ˆλ‹€.

 

μ›Ήμ„œλ²„μ™€ μ•±μ„œλ²„μ˜ 차이

μ›Ήμ„œλ²„λŠ” μ‹œμŠ€ν…œμ˜ λͺ¨λ‹ˆν„°λ§ λͺ©μ μœΌλ‘œ μ‚¬μš©λΌμ„œ μ›ΉνŽ˜μ΄μ§€λ₯Ό 주둜 μ •μ μœΌλ‘œ 컨텐츠 관리, 인증 등을 μ²˜λ¦¬ν•©λ‹ˆλ‹€. μ •μ μœΌλ‘œ μ²˜λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— μ„œλ²„μ˜ 뢀담을 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€.

μ•±μ„œλ²„λŠ” λΆ„μ‚° νŠΈλžœμž­μ…˜, λ³΄μ•ˆ, λ©”μ‹œμ§€ λ“±μ˜ λͺ©μ μœΌλ‘œ μ‚¬μš©λΌμ„œ λ™μ μœΌλ‘œ 데이터λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€.