day31 πŸŒ•

μž₯λ―ΈΒ·2022λ…„ 7μ›” 14일
0

였늘의 μ„±κ³Ό

λͺ©λ‘ 보기
31/129

μ •μ²˜κΈ° μ‹œν—˜ (08:40 ~ 10:25)

휴... 사싀 곡뢀 지지리도 μ•ˆ ν•΄μ„œ λ–¨μ–΄μ§ˆκΉŒ κ±±μ •ν–ˆμ—ˆλŠ”λ° 이게 웬걸... 무렀 평균 71점으둜 ν•©κ²©ν–ˆμŠ΅λ‹ˆλ‹€.

초둱초둱 ν–„κΉ… 이λͺ¨ν‹°μ½˜

일단 처음 CBT둜 바뀐 거라 κ·ΈλŸ°μ§€, μ•„λ‹ˆλ©΄ 제 μžλ¦¬κ°€ κ°œκΏ€ μžλ¦¬μ˜€λ˜ 건지...(μ•„λ§ˆ 이게 λ§žκ² μ§€μš”...) 비ꡐ적 μ‰¬μš΄ λ¬Έμ œλ“€μ΄ 많이 λ‚˜μ™€ μŠ‰μŠ‰ ν’€ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 졝였.

근데 μˆ˜ν—˜ν‘œ ν•„μš”ν•œ 쀄 μ•Œκ³  좜λ ₯ν•΄κ°”λŠ”λ° μˆ˜ν—˜ν‘œλŠ” 검사 μ•ˆ ν•˜κ³  μ‹ λΆ„μ¦λ§Œ κ²€μ‚¬ν•˜λ”λΌκ΅¬μš”...? μ›λž˜ 그런 건가? μ•„λ¬΄νŠΌ 4, 5κ³Όλͺ©μ„ 제일 κ±±μ •ν–ˆμ—ˆλŠ”λ° 4κ³Όλͺ©μ„ 90μ μ΄λ‚˜ λ§žμ•˜λ‹€λ„€μš” γ…‹γ……γ…‹ μžλž‘ν•˜κ³  μ‹Άμ—ˆμŒ.

5κ³Όλͺ©μ€ 50μ μ΄λΌλŠ” μ²˜μ°Έν•œ κ²°κ³Όμ˜€μ§€λ§Œ. μ–΄μ¨Œλ“ .
1, 2, 3κ³Όλͺ©μ€ 70μ λŒ€μ˜€μ–΄μš”. μ™„μ „ κ°œλΉ»μ€ 점수 λ‚˜μ˜¬ 쀄 μ•Œμ•˜λŠ”λ° 생각보닀 λ„ˆλ¬΄ 잘 λ΄μ„œ λ†€λž¬λ‹΅λ‹ˆλ‹€. μ΄λž˜λ†“κ³  였λ₯˜ 났닀고 λ‚˜μ€‘μ— λΆˆν•©κ²© μ£ΌλŠ” 건 μ•„λ‹ˆκ² μ£ ?

22λ…„ 1회, 2회 λ¬Έμ œλ“€μ΄ κ½€ 많이 λ‚˜μ˜€κ³  μ œκ°€ ν’€μ—ˆλ˜ 기좜 μ€‘μ—μ„œ κ²ΉμΉ˜λŠ” 것도 많이 λ‚˜μ™”μŠ΅λ‹ˆλ‹€. 근데 μ–΄λ”” λ‚˜μ™”λ˜ λ¬Έμ œμ˜€λŠ”μ§€ 기얡이 μ•ˆ 남... μ œκ°€ λ³Έ 건 22λ…„ 1, 2회 ν•„κΈ° λ¬Έμ œλ“€μ΄λž‘ μˆ˜μ œλΉ„ μΉ΄νŽ˜μ— 올라온 λ¬Έμ œλ“€μ΄μ—ˆμœΌλ‹ˆ... μ•„λ§ˆ κ±°κΈ°μ„œ λΉ„μŠ·ν•˜κ²Œ λ‚˜μ™”κ² μ£ ...

근데!!! μ§„μ§œ ν™λ³΄ν•˜κ³  싢은 건!!! μœ νŠœλΈŒμ— ν₯λ‹¬μŒ€μ΄λΌκ³  μ§„μ§œ μ‘±μ§‘κ²Œ κ°•μ‚¬λ‹˜ κ³„μ…”μš”. 벼락치기둜 κ·Έ λΆ„ κ°•μ˜ λ“£κ³  μ •λ ¬μ΄λ‹ˆ ν›„μœ„ ν‘œκΈ°λ²•μ΄λ‹ˆ νŽ˜μ΄μ§€ κ΅μ²΄λ‹ˆ 그런 κ±° λ‹€ μ•Œ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. κΌ­ λ“€μœΌμ„Έμš”. μ…€ λ³΄λ©΄μ„œ ν₯λ‹¬μŒ€μ΄ κ°€λ₯΄μ³μ€¬λ˜ 게 많이 λ‚˜μ™€μ„œ μ†μœΌλ‘œ μŒ€μ„ 많이 λΆ€λ₯΄μ§–μ—ˆλ‹΅λ‹ˆλ‹€... ν₯λ‹¬μŒ€... 졜고... 짱! λ°”λ‘œ ꡬ독 λ“€μ–΄κ°‘λ‹ˆλ‹€.


[λͺ¨λ“  개발자λ₯Ό μœ„ν•œ HTTP μ›Ή κΈ°λ³Έ 지식] μ„Ήμ…˜ 7, 8, 9 μˆ˜κ°•

μ„Ήμ…˜ 7. HTTP 헀더1 - 일반 헀더 μˆ˜κ°• μ™„λ£Œ!!

HTTP 헀더

header-field = field-name":" OWS field-value OWS (OWS: 띄어쓰기 ν—ˆμš©)
➑️ Host: www.google.com

HTTP ν—€λ”λŠ” HTTP 전솑에 ν•„μš”ν•œ λͺ¨λ“  뢀가정보λ₯Ό λ‹΄κ³  μžˆλ‹€.
(예: λ©”μ‹œμ§€ λ°”λ””μ˜ λ‚΄μš©, λ©”μ‹œμ§€ λ°”λ””μ˜ 크기, μ••μΆ•, 인증, μΊμ‹œ 관리 정보 λ“±)

HTTP λ°”λ””
λ©”μ‹œμ§€ λ³Έλ¬Έ(message body)을 톡해 ν‘œν˜„(전달할 μ‹€μ œ 데이터) 데이터 전달.
ν‘œν˜„ ν—€λ”λŠ” ν‘œν˜„ 데이터λ₯Ό 해석할 수 μžˆλŠ” 정보 제곡. (데이터 μœ ν˜•, 데이터 길이, μ••μΆ• 정보 λ“±)


ν˜‘μƒ(Contents Negotiation)

  • Accept: ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„ ν˜Έν•˜λŠ” λ―Έλ””μ–΄ νƒ€μž… 전달
  • Accept-Charset: ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„ ν˜Έν•˜λŠ” 문자 인코딩
  • Accept-Encoding: ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„ ν˜Έν•˜λŠ” μ••μΆ• 인코딩
  • Accept-Language: ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„ ν˜Έν•˜λŠ” μžμ—° μ–Έμ–΄

ν˜‘μƒ ν—€λ”λŠ” μš”μ²­ μ‹œμ—λ§Œ μ‚¬μš©ν•œλ‹€.


일반 정보

  • Referer: ν˜„μž¬ μš”μ²­λœ νŽ˜μ΄μ§€μ˜ 이전 μ›Ή νŽ˜μ΄μ§€ μ£Όμ†Œ
  • User-Agent: μœ μ € μ—μ΄μ „νŠΈ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 정보 (ν΄λΌμ΄μ–ΈνŠΈμ˜ μ›Ή λΈŒλΌμš°μ € 정보 λ“±)
  • Server: μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” ORIGIN μ„œλ²„μ˜ μ†Œν”„νŠΈμ›¨μ–΄ 정보

νŠΉλ³„ν•œ 정보

  • Host: μš”μ²­ν•œ 호슀트 정보 (도메인)

  • Location: νŽ˜μ΄μ§€ λ¦¬λ‹€μ΄λ ‰μ…˜

    • μ›Ή λΈŒλΌμš°μ €λŠ” 3xx 응닡 결과에 Location 헀더가 있으면 Location의 μœ„μΉ˜λ‘œ μžλ™μœΌλ‘œ μ΄λ™λœλ‹€. (λ¦¬λ‹€μ΄λ ‰νŠΈ)
  • Allow: ν—ˆμš© κ°€λŠ₯ν•œ HTTP λ©”μ„œλ“œ

    • 405(Method Not Allowed)μ—μ„œ 응닡에 포함해야 ν•œλ‹€.
  • Retry-After: μœ μ € μ—μ΄μ „νŠΈκ°€ λ‹€μŒ μš”μ²­μ„ ν•˜κΈ°κΉŒμ§€ κΈ°λ‹€λ €μ•Ό ν•˜λŠ” μ‹œκ°„

    • 503(Service Unavailable): μ„œλΉ„μŠ€κ°€ μ–Έμ œκΉŒμ§€ 뢈λŠ₯인지 μ•Œλ €μ€„ 수 μžˆλ‹€.

μΏ ν‚€

  • Set-Cookie: μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ μΏ ν‚€λ₯Ό μ „λ‹¬ν•œλ‹€. (응닡)
  • Cookie: ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ—μ„œ 받은 μΏ ν‚€λ₯Ό μ €μž₯ν•˜κ³ , HTTP μš”μ²­ μ‹œ μ„œλ²„λ‘œ μ „λ‹¬ν•œλ‹€.

HTTPλŠ” λ¬΄μƒνƒœ ν”„λ‘œν† μ½œμ΄κΈ° λ•Œλ¬Έμ— ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„κ°€ μš”μ²­κ³Ό 응닡을 μ£Όκ³ λ°›μœΌλ©΄ 연결이 λŠμ–΄μ§„λ‹€. 즉, ν΄λΌμ΄μ–ΈνŠΈκ°€ λ‹€μ‹œ μš”μ²­ν•˜λ©΄ μ„œλ²„λŠ” 이전 μš”μ²­μ„ κΈ°μ–΅ν•˜μ§€ λͺ»ν•œλ‹€. κ·Έλž˜μ„œ μΏ ν‚€λ₯Ό μ‚¬μš©ν•œλ‹€.

  • μ„Έμ…˜ μΏ ν‚€: 만료 λ‚ μ§œλ₯Ό μƒλž΅ν•˜λ©΄ λΈŒλΌμš°μ € μ’…λ£Œ μ‹œκΉŒμ§€λ§Œ μœ μ§€.
  • μ˜μ† μΏ ν‚€: 만료 λ‚ μ§œλ₯Ό μž…λ ₯ν•˜λ©΄ ν•΄λ‹Ή λ‚ μ§œκΉŒμ§€ μœ μ§€.

μ„Ήμ…˜ 8. HTTP 헀더2 - μΊμ‹œμ™€ 쑰건뢀 μš”μ²­ μˆ˜κ°• μ™„λ£Œ!!

μΊμ‹œκ°€ 없을 λ•Œ

  • 데이터가 λ³€κ²½λ˜μ§€ μ•Šμ•„λ„ 계속 λ„€νŠΈμ›Œν¬λ₯Ό ν†΅ν•΄μ„œ 데이터λ₯Ό λ‹€μš΄λ‘œλ“œ λ°›μ•„μ•Ό ν•œλ‹€. ➑️ λΈŒλΌμš°μ € λ‘œλ”© 속도가 λŠλ¦¬λ‹€.

μΊμ‹œ 적용 μ‹œ
첫 번째 μš”μ²­ μ‹œ 응닡 κ²°κ³Όλ₯Ό μΊμ‹œμ— μ €μž₯ν•˜κ³ , 두 번째 μš”μ²­ μ‹œ μΊμ‹œμ—μ„œ μ‘°νšŒν•΄ κ°€μ Έμ˜¨λ‹€. ➑️ μΊμ‹œ κ°€λŠ₯ μ‹œκ°„λ™μ•ˆ λ„€νŠΈμ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ•„λ„ 되며, λΈŒλΌμš°μ € λ‘œλ”© 속도가 빨라진닀.


μΊμ‹œ μ‹œκ°„ 초과

μΊμ‹œμ˜ 유효 μ‹œκ°„μ΄ 초과되면 μ„œλ²„λ₯Ό 톡해 데이터λ₯Ό λ‹€μ‹œ μ‘°νšŒν•˜κ³  μΊμ‹œλ₯Ό κ°±μ‹ ν•œλ‹€.
μΊμ‹œ 만료 후에도 μ„œλ²„μ—μ„œ 데이터λ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠμœΌλ©΄ μ €μž₯ν•΄λ‘μ—ˆλ˜ μΊμ‹œλ₯Ό μž¬μ‚¬μš© ν•  수 μžˆλ‹€. ν•˜μ§€λ§Œ ν΄λΌμ΄μ–ΈνŠΈμ˜ 데이터와 μ„œλ²„μ˜ 데이터가 κ°™λ‹€λŠ” 사싀을 확인해야 ν•œλ‹€.
➑️ 검증 헀더(데이터가 λ§ˆμ§€λ§‰μ— μˆ˜μ •λœ μ‹œκ°„)λ₯Ό μΆ”κ°€ν•΄μ„œ ν™•μΈν•œλ‹€.

ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„μ˜ 데이터 μ΅œμ’… μˆ˜μ •μΌμ΄ κ°™μœΌλ©΄ κ·Έ λ°μ΄ν„°λŠ” λ³€κ²½λ˜μ§€ μ•Šμ€ 것. 이 λ•Œ μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ HTTP λ°”λ””λŠ” λΉΌκ³  ν—€λ”λ§Œ 보낸닀. (304 Not Modified)
ν΄λΌμ΄μ–ΈνŠΈλŠ” μ„œλ²„κ°€ 보낸 응닡 헀더 μ •λ³΄λ‘œ μΊμ‹œμ˜ 메타 정보λ₯Ό κ°±μ‹ ν•œλ‹€.


검증 헀더와 쑰건뢀 μš”μ²­

If-Modified-Since: 이후에 데이터가 μˆ˜μ •λ˜μ—ˆμœΌλ©΄?

  • 데이터 λ―Έλ³€κ²½: 304 Not Modified, 헀더 λ°μ΄ν„°λ§Œ μ „μ†‘ν•œλ‹€.
  • 데이터 λ³€κ²½: 200 OK, λͺ¨λ“  데이터λ₯Ό μ „μ†‘ν•œλ‹€.

ETag(Entity Tag)
μΊμ‹œμš© 데이터에 μž„μ˜μ˜ κ³ μœ ν•œ 버전 이름을 달아둔닀. (예: ETag: "v1.0")
데이터가 λ³€κ²½λ˜λ©΄ 이름을 λ³€κ²½ν•œλ‹€. (Hashλ₯Ό λ‹€μ‹œ μƒμ„±ν•œλ‹€.)
➑️ ETagκ°€ κ°™μœΌλ©΄ 데이터가 μˆ˜μ •λ˜μ§€ μ•Šμ€ 것!


Cahce-Control

  • Cache-Control: max-age
    μΊμ‹œ 유효 μ‹œκ°„, 초 λ‹¨μœ„.

  • Cache-Control: no-cache
    λ°μ΄ν„°λŠ” μΊμ‹œν•΄λ„ λ˜μ§€λ§Œ, 항상 original μ„œλ²„μ— κ²€μ¦ν•˜κ³  μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

  • Cache-Control: no-store
    데이터에 λ―Όκ°ν•œ 정보가 μžˆμœΌλ―€λ‘œ μ €μž₯ν•˜λ©΄ μ•ˆ λœλ‹€.

  • Cache-Control: must-revalidate
    μΊμ‹œ 만료 ν›„ 쑰회 μ‹œ original μ„œλ²„μ— 검증해야 ν•œλ‹€.
    original μ„œλ²„μ— μ ‘κ·Ό μ‹€νŒ¨ μ‹œ λ°˜λ“œμ‹œ 였λ₯˜κ°€ λ°œμƒν•΄μ•Ό ν•œλ‹€. (504 Gateway Timeout)
    μΊμ‹œ 유효 μ‹œκ°„μ΄λΌλ©΄ μΊμ‹œλ₯Ό μ‚¬μš©ν•œλ‹€.


쑰건뢀 μš”μ²­ 헀더

  • If-Match, If-None-Match: ETag κ°’ μ‚¬μš©
  • If-Modified-Since, If-Unmodified-Since: Last-Modified κ°’ μ‚¬μš©

μ„Ήμ…˜ 9. λ‹€μŒμœΌλ‘œ μˆ˜κ°• μ™„λ£Œ!!

μ™„κ°•!! 끝!!

초둱초둱 ν–„κΉ… 이λͺ¨ν‹°μ½˜


ν† ν”½ 죽여버리기 πŸ› 


운영체제 6챕터

+) 22. 07. 20. λ“œλ””μ–΄ 정리 μ™„λ£Œ!

λ„ˆλ¬΄ κΈΈμ–΄μ„œ 링크둜 λŒ€μ²΄ν•©λ‹ˆλ‹€. (κ°œμ—΄μ‹¬νžˆ μ •λ¦¬ν–ˆμ–΄μš”. ꡐ착 μƒνƒœμ— λŒ€ν•œ λ‚΄μš©μ΄ μ•„μ£Ό μƒμ„Ένžˆ μ •λ¦¬λ˜μ–΄ μžˆμœΌλ‹ˆ ν•„μš”ν•˜μ‹  뢄듀은 잘 μ½μ–΄μ£Όμ„Έμš”.)

초둱초둱 ν–„κΉ… 이λͺ¨ν‹°μ½˜


내일 인쀀이 λ§Œλ‚˜μ„œ λ°œν‘œν•  κ±° 정리 (동기 vs 비동기)


μ‹œκ°„ λ‚˜λ©΄ 베이슀볼 (μ‹œκ°„μ΄ λ‚ κΉŒ...?)

profile
김뉴비

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보