λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
⭐ Personal_Study/Networking

HTTP: κ°œμš”

by ν¬μŠ€νŠΈμ‰μ΄ν¬ 2022. 10. 23.

HTTP

κ°œμš”

βœ” HyperText Transfer Protocol
βœ” HTML λ¬Έμ„œμ™€ 같은 resource듀을 κ°€μ Έμ˜¬ 수 μžˆλ„λ‘ ν•˜λŠ” ν”„λ‘œν† μ½œ
βœ” μ›Ήμ—μ„œ μ΄λ£¨μ–΄μ§€λŠ” λͺ¨λ“  데이터 κ΅ν™˜μ˜ 기초
βœ” 'ν΄λΌμ΄μ–ΈνŠΈ - μ„œλ²„ ν”„λ‘œν† μ½œ'이라고도 뢀름
βœ” ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„λŠ” λ‹€μŒκ³Ό 같은 κ°œλ³„μ μΈ λ©”μ‹œμ§€ κ΅ν™˜μ— μ˜ν•΄ 톡신

  • μš”μ²­(request)
    • ν΄λΌμ΄μ–ΈνŠΈμ— μ˜ν•΄ μ „μ†‘λ˜λŠ” λ©”μ‹œμ§€
  • 응닡(response)
    • μ„œλ²„μ—μ„œ μ‘λ‹΅μœΌλ‘œ μ²˜λ¦¬λ˜λŠ” λ©”μ‹œμ§€

HTTP νŠΉμ§•

Stateless(λ¬΄μƒνƒœ)

βœ” λ™μΌν•œ μ—°κ²°(connection)μ—μ„œ μ—°μ†μ μœΌλ‘œ μˆ˜ν–‰λ˜λŠ” 두 μš”μ²­ 사이에 링크가 μ—†μŒ
βœ” 즉, 응닡을 마치고 연결을 λŠλŠ” μˆœκ°„ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ 톡신이 λλ‚˜λ©° μƒνƒœ 정보가 μœ μ§€λ˜μ§€ μ•ŠλŠ”λ‹€.
βœ” μ΄λŠ” νŠΉμ • νŽ˜μ΄μ§€μ™€ μΌκ΄€λ˜κ²Œ μƒν˜Έμž‘μš©ν•˜λ €λŠ” μ‚¬μš©μžμ—κ²Œ λ¬Έμ œκ°€ 될 수 있음
βœ” 쿠킀와 μ„Έμ…˜μ΄μš©

HTTP Request Methods

βœ” GET

  • μ„œλ²„μ— λ¦¬μ†ŒμŠ€μ˜ ν‘œν˜„μ„ μš”μ²­
  • GET을 μ‚¬μš©ν•˜λŠ” μš”μ²­μ€ λ°μ΄ν„°λ§Œ 검색해야 ν•œλ‹€.

βœ” POST

  • 데이터λ₯Ό μ§€μ •λœ λ¦¬μ†ŒμŠ€μ— 제좜
  • μ„œλ²„μ˜ μƒνƒœλ₯Ό λ³€κ²½

βœ” PUT

  • μš”μ²­ν•œ μ£Όμ†Œμ˜ λ¦¬μ†ŒμŠ€λ₯Ό μˆ˜μ •

βœ” DELETE

  • μ§€μ •λœ λ¦¬μ†ŒμŠ€λ₯Ό μ‚­μ œ

HTTP response status code

βœ” νŠΉμ • μš”μ²­μ΄ μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œλ˜μ—ˆλŠ”μ§€ μ—¬λΆ€

  1. Informational responses(100 - 199)
  2. Successful responses(200 - 299)
  3. Redirection messages(300 - 399)
  4. Client error responses(400 - 499)
  5. Server error responses(500 - 599)

Identifying Resources on the Web

URI

βœ” Uniform Resources Identifier(톡합 μžμ› μ‹λ³„μž)
βœ” URL을 URI의 ν•˜λ‚˜(μ›Ή μ£Όμ†Œ)!
βœ” URN: νŠΉμ • 이름 κ³΅κ°„μ—μ„œ μ΄λ¦„μœΌλ‘œ λ¦¬μ†ŒμŠ€λ₯Ό μ‹λ³„ν•˜λŠ” URI

URL

βœ” Uniform Resource Locator (톡합 μžμ› μœ„μΉ˜)
βœ” μ›Ήμ—μ„œ 주어진 λ¦¬μ†Œμ†Œμ˜ μ£Όμ†Œ
βœ” HTML, CSS, 이미지, JS...

URL의 ꡬ쑰

image
  1. Scheme (Protocol)
    βœ” λΈŒλΌμš°μ €κ°€ λ¦¬μ†ŒμŠ€λ₯Ό μš”μ²­ν•˜λŠ”λ° μ‚¬μš©ν•˜λŠ” ν”„λ‘œν† μ½œ
    βœ” λΈŒλΌμš°μ €κ°€ μ‚¬μš©ν•˜λŠ” κ·œμ•½μ„ λ‚˜νƒ€λ‚Έλ‹€.
  2. Authority
    βœ” Shceme λ‹€μŒμ— :// 문자 νŒ¨ν„΄μœΌλ‘œ
    βœ” Domainκ³Ό Portλ₯Ό λͺ¨λ‘ ν¬ν•¨ν•˜λ©° :(콜둠)으둜 ꡬ뢄됨
    1. Domain Name
      βœ” μš”μ²­ 쀑인 μ›Ή μ„œλ²„
      βœ” 직접 IP μ£Όμ†Œλ₯Ό μ‚¬μš©ν•˜λŠ” 것도 κ°€λŠ₯ν•˜μ§€λ§Œ, μ™Έμš°κΈ° μ–΄λ ΅κΈ° λ•Œλ¬Έμ— 주둜 Domain Name으둜 μ‚¬μš©
    2. Port
      βœ” μ›Ή μ„œλ²„μ˜ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” 기술적인 Gate
      βœ” HTTP의 ν‘œμ€€ 포트 (HTTP - 80, HTTPS - 443)은 μƒλž΅ κ°€λŠ₯
      βœ” Django: 8000
  3. Path
    βœ” μ›Ή μ„œλ²„μ˜ λ¦¬μ†ŒμŠ€ 경둜
    βœ” μ΄ˆκΈ°μ—λŠ” μ‹€μ œ 파일의 물리적 μœ„μΉ˜λ₯Ό λ‚˜νƒ€λƒˆμ§€λ§Œ, μ˜€λŠ˜μ€ μΆ”μƒν™”λœ ν˜•νƒœμ˜ ꡬ쑰 ν‘œν˜„
  4. Parameters
    βœ” μ›Ή μ„œλ²„μ— μ œκ³΅ν•˜λŠ” 좔가적인 데이터
    βœ” &기호둜 κ΅¬λΆ„λ˜λŠ” Key-Value 쌍 λͺ©λ‘
    βœ” λ¦¬μ†ŒμŠ€λ₯Ό μ‘λ‹΅ν•˜κΈ° 전에 νŒŒλΌλ―Έν„°λ₯Ό μ‚¬μš©ν•˜μ—¬ μΆ”κ°€ μž‘μ—… μˆ˜ν–‰ κ°€λŠ₯
  5. Anchor
    βœ” λ¦¬μ†ŒμŠ€μ˜ λ‹€λ₯Έ 뢀뢄에 λŒ€ν•œ 액컀
    βœ” λ¦¬μ†ŒμŠ€ λ‚΄λΆ€ μΌμ’…μ˜ '뢁마크'λ₯Ό λ‚˜νƒ€λ‚΄λ©° λΈŒλΌμš°μ €μ— ν•΄λ‹Ή 뢁마크 지점에 μžˆλŠ” μ½˜ν…μΈ λ₯Ό ν‘œμ‹œ
    βœ” Fragment identifier(λΆ€λΆ„ μ‹λ³„μž) #이후 뢀뢄은 μ„œλ²„μ— μ „μ†‘λ˜μ§€ μ•Šκ³  λΈŒλΌμš°μ €κ°€ ν•΄λ‹Ή μ§€μ μœΌλ‘œ 이동 될 수 μžˆλ„λ‘ ν•œλ‹€.

λŒ“κΈ€