ComputerScience

[CS] Web general

fairy_taIe 2023. 5. 19. 00:30

Web General

μ›Ή μ„œλΉ„μŠ€ ν”„λ‘œν† μ½œ

μ›Ή ν”„λ‘œν† μ½œμ΄λž€?

μ›Ή ν”„λ‘œν† μ½œμ€ μ›Ήμ—μ„œ μ“°μ΄λŠ” ν†΅μ‹ κ·œμ•½μž…λ‹ˆλ‹€. ν†΅μ‹ κ·œμ•½μ΄λΌλŠ” 것은 μ‰½κ²Œ μ„€λͺ…ν•˜λ©΄, 톡신을 ν• λ•Œ λ‚΄κ°€ μ΄λ ‡κ²Œ ν• κ²Œ λ„ˆλŠ” μ΄λ ‡κ²Œ ν•΄μ€˜ 라고 μ•½μ†ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.


HTTP

HTTPλŠ” ν•˜μ΄νΌ ν…μŠ€νŠΈ 전솑 ν”„λ‘œν† μ½œ. μ„œλ‘œ λ‹€λ₯Έ μ‹œμŠ€ν…œλ“€ μ‚¬μ΄μ—μ„œ 톡신(데이터)을 μ£Όκ³ λ°›κ²Œ ν•΄μ£ΌλŠ” κ°€μž₯ 기초적인 ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€. μš°λ¦¬κ°€ μ›Ή μ„œν•‘μ„ ν•  λ•Œ μ„œλ²„μ—μ„œ λΈŒλΌμš°μ €λ‘œ 데이터λ₯Ό 전솑해 μ£ΌλŠ” μš©λ„λ‘œ κ°€μž₯ 많이 μ‚¬μš©λ©λ‹ˆλ‹€.
HTTPλŠ” TCP 의 μƒμœ„ ν”„λ‘œν† μ½œ μž…λ‹ˆλ‹€. λ©”μ‹œμ§€ 전체λ₯Ό ν™•μΈν–ˆλ‹€λ©΄, κ·Έ λ©”μ‹œμ§€λ₯Ό ν•΄μ„ν•΄μ•Όν•©λ‹ˆλ‹€. HTTPμ—λŠ” Request methods, data type λ“± μ›ν•˜λŠ” λ©”μ‹œμ§€λ₯Ό μ „λ‹¬ν•˜κΈ° μœ„ν•œ μ—¬λŸ¬ κ·œμΉ™λ“€μ΄ μžˆμŠ΅λ‹ˆλ‹€.

Http ν†΅μ‹ μ΄λž€?

μ›Ή ν”„λ‘œν† μ½œμ€‘ ν•˜λ‚˜λ‘œ HTTPκ°€ κ°€μž₯ 많이 μ“°μ΄λŠ”λ° Hyper text Transfer Protocol의 μ•½μžμž…λ‹ˆλ‹€. μ‰½κ²Œ λ§ν•˜λ©΄, μΈν„°λ„·μ—μ„œ 데이터λ₯Ό μ£Όκ³  받을 수 μžˆλŠ” ν†΅μ‹ κ·œμ•½ μ •λ„λ‘œ λ³΄μ‹œλ©΄λ©λ‹ˆλ‹€. μš”μ²­κ³Ό μ‘λ‹΅μœΌλ‘œ μ΄λ£¨μ–΄μ Έμžˆμ–΄ μ–΄λ–€ 데이터 μ£Όμ„Έμš” ν•˜κ³  μš”μ²­ν•˜λ©΄, 이 데이터 μ€„κ²Œμš” 라고 μ‘λ‹΅ν•©λ‹ˆλ‹€.

Http 1.1κ³Ό 2.0의 μ°¨μ΄λŠ”?

κ°€μž₯ 큰 μ°¨μ΄λŠ” μ†λ„μž…λ‹ˆλ‹€. 2.0같은 κ²½μš°λŠ” 헀더λ₯Ό μ••μΆ•ν•΄μ„œ λ³΄λ‚΄κΈ°λ„ν•˜κ³ , ν•œ 번의 μ—°κ²°λ‘œ λ™μ‹œμ— μ—¬λŸ¬ λ©”μ‹œμ§€λ₯Ό μ£Όκ³  받을 μˆ˜λ„ μž…λ‹ˆλ‹€.

HTTPS

HTTPSλŠ” ν•˜μ΄νΌ ν…μŠ€νŠΈ 전솑 ν”„λ‘œν† μ½œ λ³΄μ•ˆ(Hypertext Transfer Protocol Secure) μž…λ‹ˆλ‹€.
일반 HTTP ν”„λ‘œν† μ½œμ˜ λ¬Έμ œμ μ€ μ„œλ²„μ—μ„œλΆ€ν„° λΈŒλΌμš°μ €λ‘œ μ „μ†‘λ˜λŠ” 정보가 μ•”ν˜Έν™”λ˜μ§€ μ•ŠλŠ”λ‹€(ν•΄ν‚Ήκ°€λŠ₯μ„±)λŠ” κ²ƒμ΄μ—ˆλŠ”λ°μš”. HTTP 의 λ³΄μ•ˆμ  단점을 λ³΄μ™„ν•˜λŠ” 것이 HTTPS μž…λ‹ˆλ‹€.

http와 https 톡신 λ°©μ‹μ˜ 차이?

결정적 μ°¨μ΄λŠ” λ³΄μ•ˆμž…λ‹ˆλ‹€.
1. http방식은 λ„€νŠΈμ›Œν¬μƒμ—μ„œ 정보λ₯Ό λˆ„κ΅°κ°€κ°€ λ§ˆμŒλŒ€λ‘œ μ—΄λžŒ, μˆ˜μ •μ΄ κ°€λŠ₯ν•œ 반면 httpsλŠ” λˆ„κ°€ λ³Ό 수 없도둝 λ§‰μŠ΅λ‹ˆλ‹€.
2. http방식이 https방식보닀 λΉ λ¦…λ‹ˆλ‹€.
3. http방식은 λ―Όκ°ν•œ 정보λ₯Ό λ‹€λ£° λ•Œ 항상 λ³€μ‘°, ν•΄ν‚Ή κ°€λŠ₯성을 생각해야 ν•©λ‹ˆλ‹€. httpsλŠ” μ„€μΉ˜ 및 μΈμ¦μ„œλ₯Ό μœ μ§€ν•˜λŠ”λ° 좔가적인 λΉ„μš©μ΄ λ°œμƒν•©λ‹ˆλ‹€. λ”°λΌμ„œ, λ―Όκ°ν•œ 정보가 μžˆλŠ” νŽ˜μ΄μ§€μ˜ 경우 https κ·ΈλŸ΄ν•„μš”κ°€μ—†μœΌλ©΄ http둜 λ§Œλ“€λ©΄ λ©λ‹ˆλ‹€.

두 ν”„λ‘œν† μ½œ 사이에 κ°€μž₯ μ»€λ‹€λž€ 차이점이 λ³΄μ•ˆμ„ λ‹΄λ‹Ήν•˜λŠ” SSL μΈμ¦μ„œμž…λ‹ˆλ‹€.
SSL μΈμ¦μ„œλŠ” μ‚¬μš©μžκ°€ μ‚¬μ΄νŠΈμ— μ œκ³΅ν•˜λŠ” 정보λ₯Ό μ•”ν˜Έν™”ν•˜λŠ”λ°, μ‰½κ²Œ λ§ν•΄μ„œ 데이터λ₯Ό μ•”ν˜Έλ‘œ λ°”κΎΌλ‹€κ³  μƒκ°ν•˜λ©΄ μ‰½μŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œ μ „μ†‘λœ λ°μ΄ν„°λŠ” μ€‘κ°„μ—μ„œ λˆ„κ΅°κ°€ 훔쳐 λ‚Έλ‹€κ³  ν•˜λ”λΌλ„ 데이터가 μ•”ν˜Έν™”λ˜μ–΄μžˆκΈ° λ•Œλ¬Έμ— 해독할 수 μ—†μŠ΅λ‹ˆλ‹€. κ·Έ 외에도 HTTPSλŠ” TLS(전솑 계측 λ³΄μ•ˆ) ν”„λ‘œν† μ½œμ„ ν†΅ν•΄μ„œλ„ λ³΄μ•ˆμ„ μœ μ§€ν•©λ‹ˆλ‹€.


IP / MAC / ARP

IP

μ»΄ν“¨ν„°μ˜ IPμ£Όμ†ŒλŠ” λ§κ·ΈλŒ€λ‘œ μ£Όμ†Œμž…λ‹ˆλ‹€.
이 ν”„λ‘œν† μ½œμ—μ„œλŠ” λ©”μ‹œμ§€κ°€ λͺ©ν‘œλ‘œ ν•˜λŠ” μ»΄ν“¨ν…Œ 잘 λ„μ°©ν•˜λ„λ‘ ν•΄μ£ΌλŠ” 역할을 ν•©λ‹ˆλ‹€. 인터넷과 같은 컴퓨터 λ„€νŠΈμ›Œν¬μ—μ„œ μž₯μΉ˜λ“€μ΄ μ„œλ‘œλ₯Ό μΈμ‹ν•˜κ³  톡신을 ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” νŠΉμˆ˜ν•œ λ²ˆν˜Έλ‘œμ„œ, λ„€νŠΈμ›Œν¬μ— μ—°κ²°λœ μž₯μΉ˜κ°€ 곡유기/λΌμš°ν„°μ΄λ“  일반 컴퓨터이든, λͺ¨λ“  μž₯μΉ˜λ“€μ€ νŠΉμˆ˜ν•œ 번호λ₯Ό κ°€μ§€κ³  μžˆμ–΄μ•Ό ν•˜λ©°. 이 번호λ₯Ό μ΄μš©ν•˜μ—¬ λ°œμ‹ μžλ₯Ό λŒ€μ‹ ν•˜μ—¬ λ©”μ‹œμ§€κ°€ μ „μ†‘λ˜κ³  μˆ˜μ‹ μžλ₯Ό ν–₯ν•˜μ—¬ μ˜ˆμ •λœ λͺ©μ μ§€λ‘œ μ „λ‹¬λ˜κ²Œ λ©λ‹ˆλ‹€. μ΄λ•Œ μ‚¬μš©λ˜λŠ” νŠΉμˆ˜ν•œ 번호λ₯Ό IP라고 ν•©λ‹ˆλ‹€.

MAC

Media Access Control의 μ•½μžμž…λ‹ˆλ‹€. OSI 7계측 쀑 Data Link 계측에 μžˆλŠ” 뢀계측 μ€‘μ˜ ν•˜λ‚˜λ‘œ, 곡유 맀체에 μ—¬λŸ¬ 단말이 접속할 λ•Œ μΆ©λŒμ„ λ°©μ§€ν•˜κΈ° μœ„ν•œ μ œμ–΄λ₯Ό λ‹΄λ‹Ήν•©λ‹ˆλ‹€.
Mutiple-access protocolsμ΄λΌλŠ” λ‹€μ€‘ 접속 ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

➑️ 닀쀑 접속 ν”„λ‘œν† μ½œ ????

닀쀑 접속은 λ‹€μˆ˜μ˜ μ‹œμŠ€ν…œλ“€μ΄ 맀체λ₯Ό κ³΅μœ ν•˜λŠ” ν™˜κ²½μ—μ„œ μΆ©λŒμ—†μ΄ 데이터λ₯Ό μ „μ†‘ν•˜κΈ° μœ„ν•œ λ°©μ•ˆμž…λ‹ˆλ‹€.
λ˜ν•œ 닀쀑접속 ν”„λ‘œν† μ½œμ€ 데이터가 μΆ©λŒν•˜μ§€ μ•Šκ²Œ μ „μ†‘ν•˜λŠ” λ°©μ•ˆμœΌλ‘œ λ„€νŠΈμ›Œν¬ λͺ¨λΈμ—μ„œ μ—λŸ¬μ œμ–΄, νλ¦„μ œμ–΄, μ ‘κ·Όμ œμ–΄λ₯Ό ν•˜λŠ” Data linkκ³„μΈ΅μ—μ„œ μˆ˜ν–‰ν•˜κ³  λ‘κ°œμ˜ 뢀계측을 κ°€μ§‘λ‹ˆλ‹€.
μƒμœ„μ— μ‘΄μž¬ν•˜λŠ” Data link control은 data link에 μ€‘μš” κΈ°λŠ₯인 error μ œμ–΄μ™€ 같은 control을 ν•˜κ³ 
ν•˜λ‹¨μ— μžˆλŠ” Multiple-access resolution은 맀체에 λ”°λΌμ„œ μ–΄λ–»κ²Œ 닀쀑접속을 ν• μ§€ 문제λ₯Ό ν•΄κ²°ν•΄ μ£ΌλŠ” 역할을 ν•©λ‹ˆλ‹€.

μƒμœ„ 뢀계측: 데이터 링크λ₯Ό μ œμ–΄
ν•˜μœ„ 뢀계측: 곡유 맀체에 λŒ€ν•œ μ ‘κ·Ό 문제λ₯Ό ν•΄κ²°

ARP

Address Resolution Protocol의 μ€€λ§λ‘œ, μ£Όμ†Œ κ²°μ • ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€. 논리적인 IPμ£Όμ†Œλ₯Ό 기반으둜 데이터링크 κ³„μΈ΅μ˜ 물리적인 MACμ£Όμ†Œλ‘œ λ°”κΎΈμ–΄μ£ΌλŠ” μ£Όμ†Œν•΄μ„ ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€.



DNS

λ„€νŠΈμ›Œν¬ μƒμ—μ„œ 컴퓨터듀은 IPμ£Όμ†Œλ₯Ό μ΄μš©ν•˜μ—¬ μ„œλ‘œλ₯Ό κ΅¬λ³„ν•˜κ³  ν†΅μ‹ ν•©λ‹ˆλ‹€. μ‚¬λžŒλ“€μ΄ λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ›κ²©μ˜ 컴퓨터에 μ ‘μ†ν•˜κΈ° μœ„ν•΄μ„œλŠ” IPμ£Όμ†Œλ₯Ό μ΄μš©ν•˜μ—¬μ•Ό ν•˜μ§€λ§Œ, 숫자의 연속인 IPμ£Όμ†Œλ₯Ό 일일이 μ™ΈμšΈ 수 μ—†κΈ° λ•Œλ¬Έμ— μ‰½κ²Œ κΈ°μ–΅ν•  수 μžˆλŠ” 도메인 μ£Όμ†Œ 체계가 λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€.
DNS(Domain Name System)은 도메인 μ΄λ¦„μ˜ 수직적인 체계λ₯Ό λ§ν•©λ‹ˆλ‹€.

TLS

μΈν„°λ„·μ—μ„œμ˜ 정보λ₯Ό μ•”ν˜Έν™”ν•˜μ—¬ μ†‘μˆ˜μ‹ ν•˜λŠ” ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€. ν”νžˆ SSL 이라 λΆ€λ₯΄λŠ” κ²ƒλ“€μ˜ λŒ€λΆ€λΆ„μ€ TLS 인데, TLS λ₯Ό μ‚¬μš©ν•΄ μ•”ν˜Έν™”λœ 연결을 ν•˜λŠ” HTTP λ₯Ό HTTPS 라고 ν•©λ‹ˆλ‹€. TLSλŠ” λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ λ³΄μ•ˆ 톡신을 ν•˜κΈ° μœ„ν•œ ν”„λ‘œν† μ½œμΈλ°, HTTPS λŠ” TLS μœ„μ— HTTP ν”„λ‘œν† μ½œμ„ μ–Ήμ–΄ λ³΄μ•ˆλœ HTTP 톡신을 ν•˜λŠ” ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€.

λ„·μŠ€μΌ€μ΄ν”„μ‚¬μ—μ„œ κ°œλ°œν•œ SSL 의 μ§„ν™”λœ λ²„μ „μœΌλ‘œ 인터넷 톡신을 ν•˜λŠ” 두 μ‚¬μš©μžκ°€ μ„œλ‘œμ˜ 신원정보λ₯Ό μΈμ¦ν•˜λŠ” 절차λ₯Ό κ°–λŠ” ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€. 이 방법을 μ‚¬μš©ν•˜λ©΄ 제 3μžκ°€ 정보λ₯Ό 감청, μ‘°μž‘ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

TCP / UDP

  • TCP( Transmission Control Protocol ) 전솑 μ œμ–΄ ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€.
  • HTTPλŠ” μžμ‹ μ˜ λ©”μ‹œμ§€λ₯Ό μ „λ‹¬ν•˜κΈ° μœ„ν•΄ TCP ν”„λ‘œν† μ½œμ„ μ΄μš©ν•©λ‹ˆλ‹€.
  • ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„λŠ” TCP 컀λ„₯μ…˜μ΄ λ§Ίμ–΄μ§€λ©΄ λ©”μ‹œμ§€κ°€ μ ˆλŒ€ μ‚¬λΌμ§€κ±°λ‚˜ μ†μƒλ˜μ§€ μ•Šκ³ , μˆœμ„œκ°€ λ’€λ°”λ€ŒλŠ” 일도 μ—†λŠ” μ•ˆμ •μ„± μžˆλŠ” ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€.
  • TCPλŠ” IP μœ„μ—μ„œ λ™μž‘ν•˜λŠ” ν”„λ‘œν† μ½œλ‘œ, λ°μ΄ν„°μ˜ 전달을 λ³΄μ¦ν•˜κ³  보낸 μˆœμ„œλŒ€λ‘œ λ°›κ²Œ ν•΄μ€λ‹ˆλ‹€.
  • IP의 μƒμœ„ ν”„λ‘œν† μ½œμΈλ°, μ»΄ν“¨ν„°μ˜ μœ„μΉ˜λ₯Ό μ°Ύμ•„μ„œ λ©”μ‹œμ§€λ₯Ό μ „λ‹¬ν–ˆλ‹€λ©΄ κ·Έ λ©”μ„Έμ§€λ₯Ό 확인해야 ν•©λ‹ˆλ‹€. λ„€νŠΈμ›Œν¬ μƒμ—μ„œ λ©”μ‹œμ§€λ₯Ό 전달할 λ•Œ, ν•œλ²ˆμ— μ „λ‹¬ν•˜κΈ°λ³΄λ‹€, μž‘μ€ λ‹¨μœ„)νŒ¨ν‚·)으둜 μͺΌκ°œμ„œ λ©”μ‹œμ§€λ₯Ό μ „λ‹¬ν•©λ‹ˆλ‹€.
  • TCP λŠ” 전달받은 νŒ¨ν‚·λ“€μ„ μž¬μ‘°λ¦½ν•˜κ³ , μ†μƒλ˜κ±°λ‚˜ μ†μ‹€λœ νŒ¨ν‚·μ΄ μžˆλ‹€λ©΄, μž¬μš”μ²­ν•©λ‹ˆλ‹€.
  • UDP: User Datagram Protocol. UDPλŠ” μƒλŒ€λ°©μ΄ 데이터λ₯Ό 잘 λ°›μ•˜λ“  말든 μƒκ΄€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 즉, 데이터 전달에 λŒ€ν•œ μ•ˆμ •μ„±μ„ 보μž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • UDPκ°€ TCP에 λΉ„ν•΄ 속도가 λΉ λ₯Έλ°, 예λ₯Ό λ“€μ–΄, 유튜브( 슀트리밍 )λŠ” 데이터가 잘 전달 λλŠ”μ§€( μ•ˆμ •μ„± ) 보닀 속도가 더 μ€‘μš”ν•©λ‹ˆλ‹€. 즉, μ„œλΉ„μŠ€μ— 따라 μ‚¬μš©ν•˜λŠ” ν”„λ‘œν† μ½œμ΄ λ‹€λ¦…λ‹ˆλ‹€.





v8

κ΅¬κΈ€μ—μ„œ λ§Œλ“  μ˜€ν”ˆ μ†ŒμŠ€ μžλ°”μŠ€ν¬λ¦½νŠΈ μ—”μ§„μœΌλ‘œ 크둬 λΈŒλΌμš°μ €μ™€ Node.JS에 μ‚¬μš©λ©λ‹ˆλ‹€. C++둜 λ§Œλ“€μ–΄μ Έ 있으며 인터프린터 없이 μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό λ¨Έμ‹ μ½”λ“œλ‘œ λ°”κΏ”μ„œ 속도가 λΉ λ¦…λ‹ˆλ‹€.

크둬 V8μ—”μ§„μ˜ νŠΉμ„±

  • V8엔진은 C++둜 μž‘μ„±λκ³  Chromeκ³Ό Nodejsμ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€.
  • V8엔진은 ECMA-262에 기재된 ECMAScriptλ₯Ό κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€.
  • V8엔진은 standalone으둜 λ™μž‘ν•  수 μžˆμ–΄μ„œ μš°λ¦¬λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진을 C++ ν”„λ‘œκ·Έλž¨μ— λ‚΄μž₯μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ°Έκ³ 1 : https://nomadkim880901.tistory.com/
μ°Έκ³ 2 : https://sunnykim91.tistory.com/121