728x90

Chapter 2. CLIENT-SERVER MODELS

 μ΄ μ±…μ˜ 첫 번째 μž₯μ—μ„œλŠ” CLIENT-SERVER μ•„ν‚€ν…μ²˜λ₯Ό, 데이터가 각 컴퓨터 간에 흐λ₯΄λŠ” 방식에 따라 λ‹€μ–‘ν•œ ν˜•νƒœλ‘œ λ‚˜νƒ€λ‚˜λŠ” 단일 λͺ¨λΈλ‘œ κ°„μ£Όν–ˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ 데이터가 ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ 직접 흐λ₯Έλ‹€λ©΄, ν•΄λ‹Ή μ•„ν‚€ν…μ²˜λŠ” 이λ₯Έλ°” 2계측 μ•„ν‚€ν…μ²˜(two-tier architecture)둜 ν‘œν˜„ν•  수 있으며, ν΄λΌμ΄μ–ΈνŠΈλŠ” 첫 번째 계측, μ„œλ²„λŠ” 두 번째 κ³„μΈ΅μœΌλ‘œ κ°„μ£Όλ©λ‹ˆλ‹€. λ§Œμ•½ 데이터가 ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ 흐λ₯Έ ν›„ μš”μ²­μ— 따라 λ‹€λ₯Έ μ„œλ²„λ‘œ μ΄λ™ν•œλ‹€λ©΄, ν•΄λ‹Ή μ•„ν‚€ν…μ²˜λŠ” 3계측 μ•„ν‚€ν…μ²˜(three-tier architecture)라고 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 λ¦¬λ·°λ₯Ό μœ„ν•΄ μ •λ¦¬ν•˜μžλ©΄, 2계측 μ•„ν‚€ν…μ²˜μ—μ„œλŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€κ°€ 일반적으둜 μ‚¬μš©μžμ˜ λ°μŠ€ν¬νƒ‘μ— μœ„μΉ˜ν•˜λ©°, μ ‘κ·Όν•˜λ €λŠ” λ°μ΄ν„°λ² μ΄μŠ€λŠ” λ‹€μˆ˜μ˜ ν΄λΌμ΄μ–ΈνŠΈμ— μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μ„œλ²„μ— μœ„μΉ˜ν•©λ‹ˆλ‹€. 3계측(λ˜λŠ” λ©€ν‹° 계측, multitier) μ•„ν‚€ν…μ²˜μ—μ„œλŠ” ν΄λΌμ΄μ–ΈνŠΈμ™€ μ ‘κ·Όν•˜λ €λŠ” λ°μ΄ν„°λ² μ΄μŠ€ 사이에 쀑간 계측이 μΆ”κ°€λ©λ‹ˆλ‹€. 이 쀑간 계측은 μš”μ²­μ„ 큐에 λ„£κ±°λ‚˜, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜κ±°λ‚˜, μŠ€μΌ€μ€„λ§μ„ μ œκ³΅ν•˜κ³ , 심지어 진행 쀑인 μž‘μ—…μ˜ μš°μ„ μˆœμœ„λ₯Ό μ§€μ •ν•˜λŠ” λ“±μ˜ 역할을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

Three Tier Architecture https://www.geeksforgeeks.org/difference-between-two-tier-and-three-tier-database-architecture/

2계측과 λ©€ν‹° 계측 μ•„ν‚€ν…μ²˜ κ°„μ˜ νŠΈλ ˆμ΄λ“œμ˜€ν”„(trade-off)λ₯Ό κ³ λ €ν•  λ•Œ, λ©€ν‹° 계측 μ•„ν‚€ν…μ²˜λŠ” 항상 LAN의 데이터 흐름을 μ¦κ°€μ‹œν‚¨λ‹€λŠ” 점을 μ£Όλͺ©ν•  ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, λ°μ΄ν„°λ² μ΄μŠ€ 검색 λ¬Έμ œμ— λŒ€ν•œ λ©€ν‹° 계측 μ†”λ£¨μ…˜μ„ κ΅¬ν˜„ν•˜κΈ° 전에 λ„€νŠΈμ›Œν¬κ°€ 이미 혼작 μƒνƒœμ— κ°€κΉŒμ›Œμ§€κ³  μžˆλ‹€λ©΄, μ΄λŸ¬ν•œ 증가λ₯Ό κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ˜ν•œ, 각 계측에 μ—¬λŸ¬ μœ ν˜•μ˜ μ†Œν”„νŠΈμ›¨μ–΄ μ œν’ˆμ΄ μ‘΄μž¬ν•  수 있기 λ•Œλ¬Έμ—, μ΄λŠ” λ‹€μ–‘ν•œ ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„ λͺ¨λΈλ‘œ μ΄μ–΄μ§ˆ 수 있으며, 이번 μž₯의 μ£Όμ œλŠ” μ΄λŸ¬ν•œ ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„ λͺ¨λΈμ— κ΄€ν•œ κ²ƒμž…λ‹ˆλ‹€.


 

 μ΄ μž₯μ—μ„œλŠ” ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ λͺ¨λ‘μ—μ„œ μž‘λ™ν•˜λŠ” 핡심 μ†Œν”„νŠΈμ›¨μ–΄ μ œν’ˆ μ„ΈνŠΈμ— μ£Όλͺ©ν•  κ²ƒμž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ†Œν”„νŠΈμ›¨μ–΄λ“€μ˜ μƒν˜Έ μž‘μš©μ€ λ‹€μ–‘ν•œ ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„ λͺ¨λΈμ„ λ§Œλ“€μ–΄λ‚΄λ©°, 각 λͺ¨λΈμ€ 데이터가 인터넷을 톡해 이동할 λ•Œ λ°œμƒν•˜λŠ” 지연(latency), 각 인터넷 μ„œλΉ„μŠ€ 제곡자(ISP) λ„€νŠΈμ›Œν¬μ—μ„œμ˜ νŠΈλž˜ν”½, 그리고 ν•œ ISP λ„€νŠΈμ›Œν¬μ— μœ„μΉ˜ν•œ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ λ‹€λ₯Έ ISP λ„€νŠΈμ›Œν¬μ— μœ„μΉ˜ν•œ μ„œλ²„λ‘œ 데이터가 전달될 λ•Œ κ±°μΉ˜λŠ” 포인트 였브 ν”„λ ˆμ¦ŒμŠ€(POP, Point of Presence)λ₯Ό 톡해 λΌμš°νŒ…λ˜λŠ” νŠΈλž˜ν”½μ— μ˜ν•΄ 영ν–₯을 λ°›μŠ΅λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ— λŒ€ν•œ 응닡이 λ‹€μ‹œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ λŒμ•„κ°€λŠ” κ³Όμ •μ—μ„œλ„ μ΄λŸ¬ν•œ νŠΉμ„±λ“€μ΄ 영ν–₯을 λ―ΈμΉ©λ‹ˆλ‹€.

 

 ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„ λͺ¨λΈμ— λŒ€ν•œ 뢄석을 μ‹œμž‘ν•˜κΈ° μœ„ν•΄, "μ²˜μŒλΆ€ν„° μ‹œμž‘ν•˜μž"λŠ” μ΅μˆ™ν•œ ν‘œν˜„μ²˜λŸΌ, 3계측이 μ„œλ‘œ λ‹€λ₯Έ ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„ μ•„ν‚€ν…μ²˜μ—μ„œ μ–΄λ–»κ²Œ μ‚¬μš©λ  수 μžˆλŠ”μ§€λ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 각 κ³„μΈ΅μ—μ„œ μž‘λ™ν•  수 μžˆλŠ” λ‹€μ–‘ν•œ 인기 μ†Œν”„νŠΈμ›¨μ–΄ μœ ν˜•μ„ 확인할 κ²ƒμž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ μž‘μ—…μ΄ μ™„λ£Œλ˜λ©΄, μ•žμ„œ 배운 λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ 각 κ³„μΈ΅μ˜ μ†Œν”„νŠΈμ›¨μ–΄ νŠΉμ§•μ— λŒ€ν•΄ 깊이 탐ꡬ할 것이며, λ‹€λ₯Έ μ†Œν”„νŠΈμ›¨μ–΄μ™€μ˜ 관계 및 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ 거리가 λ™μΌν•œ λ„€νŠΈμ›Œν¬μ— μžˆλŠ” κ²½μš°μ—μ„œ μ„œλ‘œ λ‹€λ₯Έ λ„€νŠΈμ›Œν¬μ— μžˆλŠ” 경우둜 증가할 λ•Œ μ†Œν”„νŠΈμ›¨μ–΄ μš΄μ˜μ— λ―ΈμΉ˜λŠ” 영ν–₯을 ν¬ν•¨ν•˜μ—¬ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

 ν˜„λŒ€ μ›Ή νŽ˜μ΄μ§€ ν™˜κ²½μ—μ„œ 이미지와 λΉ„λ””μ˜€κ°€ μ€‘μš”ν•œ 역할을 ν•˜κΈ° λ•Œλ¬Έμ—, μš°λ¦¬λŠ” νŠΉμ • μœ ν˜•μ˜ μ†Œν”„νŠΈμ›¨μ–΄μ— λŒ€ν•œ λ…Όμ˜λ₯Ό 이미지 및 λΉ„λ””μ˜€ 기술의 μ‚¬μš©μ„ ν¬ν•¨ν•˜μ—¬ 진행할 κ²ƒμž…λ‹ˆλ‹€.

 

2.1 Overview

 

 κ·Έλ¦Ό 2.1은 ν˜„λŒ€ ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„ μ•„ν‚€ν…μ²˜μ™€ κ΄€λ ¨λœ μ„Έ 가지 계측을 블둝 λ‹€μ΄μ–΄κ·Έλž¨ ν˜•μ‹μœΌλ‘œ λ‚˜νƒ€λ‚΄κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 블둝 λ‹€μ΄μ–΄κ·Έλž¨μ—μ„œλŠ” 각 계측에 일반적으둜 μœ„μΉ˜ν•˜λŠ” 잠재적인 μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œκ·Έλž¨μ΄ ν‘œμ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, 각 κ³„μΈ΅μ—μ„œ 일반적으둜 μ‚¬μš©λ˜λŠ” 운영 μ²΄μ œλ„ ν•¨κ»˜ ν‘œμ‹œλ˜μ–΄ μžˆμ–΄, ν˜„λŒ€ ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„ ν™˜κ²½μ—μ„œ 일반적으둜 μ‚¬μš©λ˜λŠ” ν”Œλž«νΌμ— λŒ€ν•œ μΆ”κ°€ 정보λ₯Ό λ…μžμ—κ²Œ μ œκ³΅ν•©λ‹ˆλ‹€.

κ·Έλ¦Ό 2.1 Ther client-server architectural model

 

2.2 Client Operations

 μΈν„°λ„·μ˜ 멋진 μ„Έκ³„μ—μ„œ λΈŒλΌμš°μ €λŠ” ν΄λΌμ΄μ–ΈνŠΈλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. λΈŒλΌμš°μ €μ˜ λͺ©μ μ€ μ›Ή 탐색 외에도, μ‚¬μš©μžκ°€ μ„œλ²„λ‘œλΆ€ν„° λ¬Έμ„œλ₯Ό μš”μ²­ν•˜κ³ , μš”μ²­λœ λ¬Έμ„œλ₯Ό ν‘œμ‹œν•  수 μžˆλ„λ‘ ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. λ„·μŠ€μΌ€μ΄ν”„(Netscape)사가 졜초둜 μƒμš© λΈŒλΌμš°μ €λ₯Ό κ°œλ°œν–ˆμ§€λ§Œ, ν˜„μž¬ λΈŒλΌμš°μ € μ‹œμž₯은 Microsoftμ‚¬μ˜ Internet Explorerκ°€ μ•½ 80%의 점유율둜 μ§€λ°°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ„·μŠ€μΌ€μ΄ν”„, μ˜€ν”ˆ μ†ŒμŠ€ 기반의 Mozilla Firefox, 였페라(Opera) 및 기타 μ œν’ˆλ“€μ€ λ‚˜λ¨Έμ§€ μ‹œμž₯을 μ°¨μ§€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.(2009.)

 

 ν˜„μž¬λŠ” Chrome λΈŒλΌμš°μ €κ°€ 60%의 μ μœ μœ¨μ„ 가지고 μžˆλ‹€.  

https://en.wikipedia.org/wiki/Usage_share_of_web_browsers#/media/File:StatCounter-browser-ww-monthly-202312-202312-bar.png

 

 λΈŒλΌμš°μ €λŠ” μ§€μ›ν•˜λŠ” HTML(HyperText Markup Language) 버전, μ½”λ“œ λͺ¨λ“ˆ, ν”ŒλŸ¬κ·ΈμΈ 지원, μ‚¬μš©μžκ°€ μˆ˜ν–‰ν•  수 μžˆλŠ” λ§žμΆ€ν™” 정도, 캐싱 κΈ°λŠ₯ 등에 따라 λ‹€λ¦…λ‹ˆλ‹€. 이 μ±…μ˜ 첫 번째 μž₯μ—μ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄, λΈŒλΌμš°μ €λŠ” 정적인 μ†Œν”„νŠΈμ›¨μ–΄κ°€ μ•„λ‹ˆλ©°, μ‚¬μš©ν•˜λŠ” 버전에 따라 κΈ°λŠ₯이 μƒλ‹Ήνžˆ λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. Microsoft Internet Explorer의 μ‹œμž₯ 점유율이 높은 κ΄€κ³„λ‘œ, 이 μ±…μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈ μž‘μ—…μ— λŒ€ν•΄ λ…Όμ˜ν•  λ•Œ 주둜 이 λΈŒλΌμš°μ €μ— μ΄ˆμ μ„ 맞좜 κ²ƒμž…λ‹ˆλ‹€. (Chrome) κ·ΈλŸ¬λ‚˜ Mozilla Firefox λΈŒλΌμš°μ €μ˜ 인기가 μƒμŠΉν•˜κ³  있기 λ•Œλ¬Έμ—, μ €μžλŠ” νŠΉμ • λΈŒλΌμš°μ € μž‘μ—…μ„ μ„€λͺ…ν•  λ•Œ 주기적으둜 이 λΈŒλΌμš°μ €λ₯Ό μ‚¬μš©ν•˜μ—¬ μ˜ˆμ‹œλ₯Ό 듀기도 ν•  κ²ƒμž…λ‹ˆλ‹€.

 

2.2.1 URLs

 Uniform Resource Locators (URL)은 μ›Ήμƒμ˜ λ‹€μ–‘ν•œ μžμ›μ˜ μœ„μΉ˜λ₯Ό μ‹λ³„ν•˜λŠ” 짧은 λ¬Έμžμ—΄μž…λ‹ˆλ‹€. URL은 1994λ…„ 12월에 λ°œν–‰λœ Request for Comment (RFC) 1738에 μ •μ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. RFC 1738은 μžμ›μ΄ μ–΄λ–»κ²Œ μ£Όμ†Œ μ§€μ •λ˜λŠ”μ§€λ₯Ό 잘 μ •μ˜ν•˜κ³  μžˆμ§€λ§Œ, μ§€μ†μ μœΌλ‘œ λ°œμƒν•˜λŠ” λ¬Έμ œλŠ” ν—ˆμš©λ˜λŠ” 문자 집합을 λ―Έκ΅­ ν‘œμ€€ 정보 κ΅ν™˜ μ½”λ“œ(ASCII)의 λ―Έκ΅­ 버전 ν•˜μœ„ μ§‘ν•©μœΌλ‘œ μ œν•œν•œλ‹€λŠ” μ μž…λ‹ˆλ‹€.

ν˜„λŒ€ λΈŒλΌμš°μ €λŠ” ꡭ제 ν‘œμ€€ν™” 기ꡬ(ISO) 8859 μ½”λ“œλΏλ§Œ μ•„λ‹ˆλΌ λͺ¨λ“  μœ λ‹ˆμ½”λ“œ(Unicode) λ¬Έμžμ™€ ν˜Έν™˜λ˜λŠ” HTML(HyperText Markup Language) 버전 4λ₯Ό 일반적으둜 μ§€μ›ν•˜λ―€λ‘œ, μœ λ‹ˆμ½”λ“œ 문자 μ§‘ν•©μ—μ„œ 16μ§„μˆ˜ 255λ₯Ό μ΄ˆκ³Όν•˜λŠ” 일뢀 λ¬Έμžλ“€μ€ URLμ—μ„œ μ‚¬μš©λ˜μ§€ μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€. λ˜ν•œ, λ‹¬λŸ¬ 기호($), μ•°νΌμƒŒλ“œ(&), λ¬ΌμŒν‘œ(?)와 같은 νŠΉμ • λ¬ΈμžλŠ” 특수 μš©λ„λ‘œ μ˜ˆμ•½λ˜μ–΄ 있으며, λΆ€λ“±ν˜Έ(<) 및 큰 λΆ€λ“±ν˜Έ(>)와 같은 λ¬ΈμžλŠ” URLμ—μ„œ μ‚¬μš©λ  λ•Œ μ˜€ν•΄μ˜ μ†Œμ§€κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

 λ”°λΌμ„œ, URL을 μž‘μ„±ν•  λ•Œ, μ•ŒνŒŒλ²³κ³Ό 숫자, 그리고 μ •μ˜λœ 특수 문자λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμ—μ„œ λ²—μ–΄λ‚  경우, ν•΄λ‹Ή 문자λ₯Ό URLμ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μΈμ½”λ”©ν•˜λŠ” 방법을 μ°Έκ³ ν•  ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€.

 

 URL둜 μ •μ˜λ˜λŠ” μžμ›μ—λŠ” λ¬Έμ„œ, 이미지, λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•œ 파일, μ „μž 메일 μ£Όμ†Œ, 심지어 μ„œλΉ„μŠ€κΉŒμ§€ 포함될 수 μžˆμŠ΅λ‹ˆλ‹€. URL의 일반적인 ν˜•μ‹μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

Protocol://location**

 

 μΌλ°˜ ν˜•μ‹μ€ ν”„λ‘œν† μ½œλ‘œ μ‹œμž‘ν•˜λ©°, κ·Έ 뒀에 콜둠이 였고, 두 개의 μŠ¬λž˜μ‹œ(//)와 μœ„μΉ˜κ°€ λ’€λ”°λ¦…λ‹ˆλ‹€. ν”„λ‘œν† μ½œμ˜ 일반적인 μ˜ˆλ‘œλŠ” HTTP(HyperText Transfer Protocol)와 FTP(File Transfer Protocol)κ°€ μžˆμŠ΅λ‹ˆλ‹€. μœ„μΉ˜λŠ” 정보가 μ‹€μ œλ‘œ μ‘΄μž¬ν•˜λŠ” μœ„μΉ˜μ— 따라 λ‹€μ–‘ν•œ ν˜•νƒœλ₯Ό κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 도메인이 popcorn.com인 μ›Ή μ„œλ²„μ˜ ν™ˆνŽ˜μ΄μ§€λŠ” λ‹€μŒκ³Ό 같은 λ°©μ‹μœΌλ‘œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€:

http://www.popcorn.com

 

 μœ„ μ˜ˆμ‹œμ—μ„œ httpλŠ” 컴퓨터가 HyperText Transfer Protocol을 μ‚¬μš©ν•˜λ„λ‘ μ§€μ‹œν•˜λ©°, wwwλŠ” popcorn.com λ„λ©”μΈμ˜ 호슀트 이름을 μ°Έμ‘°ν•©λ‹ˆλ‹€.

 

 μœ„ URL μ˜ˆμ‹œμ—λŠ” HTTPμ—μ„œ μ‚¬μš©λ˜λŠ” κΈ°λ³Έ 포트 λ²ˆν˜Έκ°€ ν‘œμ‹œλ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 기본적으둜 HTTP의 포트 λ²ˆν˜ΈλŠ” 80λ²ˆμž…λ‹ˆλ‹€. λ§Œμ•½ νŠΉμ • 이유둜 μ ‘κ·Όν•˜λ €λŠ” μ„œλ²„μ˜ 포트 λ²ˆν˜Έκ°€ λ‹€λ₯Έ 포트 번호λ₯Ό μ‚¬μš©ν•˜λŠ” 경우, URL은 λ‹€μŒκ³Ό 같이 μž‘μ„±λ  수 μžˆμŠ΅λ‹ˆλ‹€:

http://www.popcorn.com:number

μ—¬κΈ°μ„œ numberλŠ” 포트 번호λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

 

 μ•žμ„œ μ–ΈκΈ‰ν•œ URL은 도메인이 popcorn.com이고 μ£Όμ†Œκ°€ www.popcorn.com인 μ›Ή μ„œλ²„μ˜ ν™ˆνŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜λ©°, 이 μ„œλ²„λŠ” 포트 80λ²ˆμ—μ„œ HTML μš”μ²­μ„ μˆ˜μ‹ ν•˜λ„λ‘ μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μš°λ¦¬λŠ” μ»΄ν“¨ν„°μ˜ νŠΉμ • μœ„μΉ˜λ‘œ μ΄λ™ν•˜λŠ” 경둜(path)λ₯Ό μ§€μ •ν•˜κ±°λ‚˜, 쿼리 λ¬Έμžμ—΄(query string)을 톡해 μŠ€ν¬λ¦½νŠΈμ— λ§€κ°œλ³€μˆ˜λ₯Ό μ „λ‹¬ν•˜κ±°λ‚˜, ν”„λž˜κ·Έλ¨ΌνŠΈ(fragment)λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹λ³„λœ μžμ›μ˜ νŠΉμ • μ„Ήμ…˜μ„ μ°Έμ‘°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 보닀 μƒμ„Έν•œ URL ν˜•μ‹μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

Protocol://domain name [IP address]: [port] [path] [Query] [fragment]

 

 URLμ—μ„œ λͺ©μ μ§€ μœ„μΉ˜λ‘œ λ“±λ‘λœ 도메인 이름 λ˜λŠ” IP μ£Όμ†Œλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€λŠ” 점에 μœ μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, Microsoft의 μƒˆλ‘œμš΄ 검색 엔진인 Bing은 도메인 bing.comμ΄λ‚˜ IP μ£Όμ†Œ 64.4.8.147을 톡해 μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, URL의 호슀트 이름과 도메인 이름은 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ΄λŠ” 도메인 이름 μ„œλΉ„μŠ€(DNS)κ°€ λŒ€μ†Œλ¬Έμžλ₯Ό λ¬΄μ‹œν•˜λ„λ‘ ν”„λ‘œκ·Έλž˜λ°λ˜μ–΄ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. λ”°λΌμ„œ bing.comκ³Ό BING.COM λͺ¨λ‘ λ™μΌν•œ 검색 μ—”μ§„μ˜ ν™ˆνŽ˜μ΄μ§€λ₯Ό μ°Έμ‘°ν•©λ‹ˆλ‹€.

 

 ν•˜μ§€λ§Œ, μ£Όμ†Œλ₯Ό 지정할 λ•Œ ν˜Όλ™μ„ μ£ΌλŠ” μš”μ†Œκ°€ ν•˜λ‚˜ 더 μžˆμŠ΅λ‹ˆλ‹€. λ¬Έμ„œλ‚˜ ν”„λ‘œκ·Έλž¨μ˜ μœ„μΉ˜λ₯Ό μ§€μ •ν•˜λŠ” 파일 경둜 이름은 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€λ§Œ, λ§Žμ€ μ„œλ²„(특히 Microsoft Windows μ„œλ²„)λŠ” μ΄λŸ¬ν•œ 데이터λ₯Ό λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•Šκ³  μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

예λ₯Ό λ“€μ–΄:

http://64.4.8.147/search?q=bing&go=&form=QBLH&qs=n

와

http://64.4.8.147/SEARCH?q=BING&go=&form=QBLH&qs=n

λŠ” Microsoft의 Bing 검색 μ—”μ§„μ—μ„œ λ™μΌν•œ 검색 κ²°κ³Ό νŽ˜μ΄μ§€λ‘œ μ—°κ²°λ©λ‹ˆλ‹€. ν•˜μ§€λ§Œ, λ‹€λ₯Έ 검색 μ—”μ§„μœΌλ‘œμ˜ 접근을 μœ„ν•΄ URL을 λ³€κ²½ν•  경우, λŒ€μ†Œλ¬Έμž μ‚¬μš©μ— 따라 κ²°κ³Όκ°€ λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. μ°Έκ³ ν•  λ§Œν•œ ν₯미둜운 μ›Ήμ‚¬μ΄νŠΈλ‘œ

http://www.hcidata.info/host2ip.cgiκ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 μ‚¬μ΄νŠΈλŠ” 호슀트/도메인 이름을 IP μ£Όμ†Œλ‘œ λ³€ν™˜ν•  수 있으며, μ—­λ³€ν™˜λ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

hcidata.info naver.com ip

 

 ν™•μž₯된 URL μ‚¬μš© 예제둜, 할인 μ¦κΆŒμ‚¬μΈ TD Ameritrade의 ν™ˆνŽ˜μ΄μ§€μ— λ‘œκ·ΈμΈν•˜κ³  μ‹Άλ‹€κ³  κ°€μ •ν•΄ λ΄…μ‹œλ‹€. λΈŒλΌμš°μ €λ₯Ό 톡해 TD Ameritrade의 ν™ˆνŽ˜μ΄μ§€μ— μ ‘μ†ν•œ ν›„, μ‚¬μš©μž 정보λ₯Ό μž…λ ₯ν•˜λ„λ‘ μš”μ²­ν•˜λŠ” 메뉴 ν•­λͺ©μ„ 선택할 μˆ˜λ„ 있고, λ°”λ‘œ 둜그인 νŽ˜μ΄μ§€λ‘œ μ ‘κ·Όν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν›„μžμ˜ 경우, URL을 λ‹€μŒκ³Ό 같이 μž…λ ₯ν•˜λ©΄ λ©λ‹ˆλ‹€:

https://wwws.ameritrade.com/cgi-bin/apps/Main

 

 μœ„μ˜ URLμ—μ„œ μ£Όλͺ©ν•  점은 ν”„λ‘œν† μ½œμ΄ https둜 λ³€κ²½λ˜μ—ˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ—¬κΈ°μ„œ sλŠ” secureλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. λ˜ν•œ, CGI(Common Gateway Interface)λŠ” ν΄λΌμ΄μ–ΈνŠΈ 및 μ„œλ²„μ— μžˆλŠ” λ‹€λ₯Έ μ†Œν”„νŠΈμ›¨μ–΄μ™€ μ›Ή μ„œλ²„κ°€ ν†΅μ‹ ν•˜λŠ” 방식을 μ„€λͺ…ν•˜λŠ” 일련의 κ·œμΉ™μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, TD Ameritrade μ ‘κ·Ό νŽ˜μ΄μ§€μ—μ„œλŠ” μ‚¬μš©μž ID와 λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜λ„λ‘ μš”μ²­ν•˜λŠ” μž‘μ€ 양식을 ν‘œμ‹œν•˜λ©°, μž…λ ₯된 λ°μ΄ν„°λŠ” CGI ν”„λ‘œκ·Έλž¨μ— μ˜ν•΄ μ²˜λ¦¬λ©λ‹ˆλ‹€. 이 μž₯의 ν›„λ°˜λΆ€μ—μ„œ CGI에 λŒ€ν•΄ 더 μžμ„Ένžˆ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€.

 

 μ„œλ²„μ—μ„œ νŠΉμ • λ¬Έμ„œ, 파일 λ˜λŠ” μ„œλΉ„μŠ€μ— λŒ€ν•œ 경둜λ₯Ό μ§€μ •ν•˜λ €λ©΄, μ„œλ²„ μ£Όμ†Œμ™€ 선택적인 포트 번호 뒀에 ν•˜λ‚˜ μ΄μƒμ˜ μŠ¬λž˜μ‹œ(/β€Œ)λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€. 웹이 λ°œμ „ν•˜λ˜ μ΄ˆκΈ°μ—λŠ” 일뢀 쑰직이 포트 80이 μ•„λ‹Œ λ‹€λ₯Έ 포트λ₯Ό μ‚¬μš©ν•˜μ—¬ 쑴재λ₯Ό μˆ¨κΈ°λ €λŠ” μ‹œλ„κ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 포트 μŠ€μΊλ‹ 기술이 μ‚¬μš©λ˜λ©΄μ„œ, 포트 μˆ¨κΈ°κΈ°μ™€ 같은 λ³΄μ•ˆ λ©”μ»€λ‹ˆμ¦˜μ€ λΉ λ₯΄κ²Œ μ•”ν˜Έν™” μ‚¬μš©μœΌλ‘œ λŒ€μ²΄λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

 URL λ‚΄μ—μ„œλŠ” λ‹€μ–‘ν•œ 특수 문자λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλ‘œ λ‹€λ₯Έ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ¬ΌμŒν‘œ(?)λŠ” 쿼리가 κ°€λŠ₯ν•œ 객체의 URLκ³Ό ν•΄λ‹Ή 객체에 λŒ€ν•œ 쿼리λ₯Ό ν‘œν˜„ν•˜λŠ” 단어 집합 κ°„μ˜ 경계λ₯Ό κ΅¬λΆ„ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄:

http://www.popcorn.com/?bucketprice.dat

λŠ” bucketprice.dat νŒŒμΌμ— λŒ€ν•΄ 쿼리λ₯Ό μˆ˜ν–‰ν•  수 μžˆλŠ” URL을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

 

2.2.1.1 Absolute and Relative URLs URL에 λŒ€ν•œ 초기 μ„€λͺ…을 λ§ˆλ¬΄λ¦¬ν•˜λ©°, URL이 μ ˆλŒ€ URL λ˜λŠ” μƒλŒ€ URL일 수 μžˆμŒμ„ μ•Œμ•„λ‘μ–΄μ•Ό ν•©λ‹ˆλ‹€. μ ˆλŒ€ URL은 파일의 μ •ν™•ν•œ μœ„μΉ˜λ₯Ό 직접 κ°€λ¦¬ν‚€λŠ” URL둜, 항상 κ³ μœ ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 두 개의 μ ˆλŒ€ URL이 λ™μΌν•˜λ‹€λ©΄, μ΄λŠ” λ°˜λ“œμ‹œ λ™μΌν•œ νŒŒμΌμ„ κ°€λ¦¬ν‚¨λ‹€λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€.

 

예λ₯Ό λ“€μ–΄:

http://popcorn.com/taffy/bucketprice.dat

λŠ” μ ˆλŒ€ URLμž…λ‹ˆλ‹€.

λ°˜λ©΄μ—, μƒλŒ€ URL은 μ°Έμ‘° μ§€μ μœΌλ‘œλΆ€ν„° 파일의 μœ„μΉ˜λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 이 μ°Έμ‘° 지점은 일반적으둜 λŒ€μƒ 파일의 μœ„μΉ˜ μ•„λž˜μ— 있으며, μ΄λŠ” λ””μŠ€ν¬ 운영 체제(DOS)μ—μ„œ ..λ₯Ό μ‚¬μš©ν•˜μ—¬ 경둜λ₯Ό λ³€κ²½ν•˜κ³  CD.. λͺ…령을 μ‚¬μš©ν•˜μ—¬ μƒμœ„ λ””λ ‰ν† λ¦¬λ‘œ μ΄λ™ν•˜κ±°λ‚˜, .λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ 디렉토리λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 방식과 μœ μ‚¬ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 초기 μ ˆλŒ€ URL이 http://popcorn.com으둜 μ΄λ™ν–ˆλ‹€λ©΄, λ‹€μŒκ³Ό 같은 μƒλŒ€

 

URL은:

/taffy/bucketprice.dat

popcorn.com λ„λ©”μΈμ˜ taffy 디렉토리에 μžˆλŠ” bucketprice.dat νŒŒμΌμ„ μ°Έμ‘°ν•©λ‹ˆλ‹€. λ§Œμ•½ μ‚¬μš©μžκ°€ ν•΄λ‹Ή μœ„μΉ˜μ— μžˆλ‹€λ©΄, λ‹€μŒκ³Ό 같은 URL을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

 

./salty/bucketprice.dat

이 URL은 ν˜„μž¬ 디렉토리 μ•„λž˜μ— μžˆλŠ” salty λ””λ ‰ν† λ¦¬μ˜ bucketprice.dat νŒŒμΌμ„ μ°Έμ‘°ν•˜κ²Œ λ©λ‹ˆλ‹€.

 

2.2.1.2 Shortening URLs μƒλŒ€μ μœΌλ‘œ κΈ΄ URL을 지정해야 ν•˜λŠ” ν•„μš”μ„±κ³Ό νŠΈμœ„ν„°(Twitter)와 같은 μ„œλΉ„μŠ€μ—μ„œ ν¬μŠ€νŠΈλ‹Ή 140자 μ œν•œκ³Ό 같은 μ œμ•½μ΄ 있기 λ•Œλ¬Έμ—, URL을 크게 단좕해야 ν•  ν•„μš”μ„±μ΄ μƒκ²ΌμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, μ €μžκ°€ κΈ΄ URL을 크게 단좕할 수 μžˆλŠ” 두 가지 μ„œλΉ„μŠ€λ₯Ό μ–ΈκΈ‰ν•˜μ§€ μ•Šκ³  λ„˜μ–΄κ°„λ‹€λ©΄ μ‹€μˆ˜μΌ κ²ƒμž…λ‹ˆλ‹€. 이 μ„œλΉ„μŠ€λ“€μ΄ κΈ΄ URL을 μ–΄λ–»κ²Œ 단좕할 수 μžˆλŠ”μ§€ κ°„λ‹¨νžˆ μ„€λͺ…ν•˜κ³ , λ…μžλ“€μ΄ URL을 λ³Ό λ•Œ μƒλ‹Ήνžˆ κΈ΄ μ‹€μ œ URL의 μΆ•μ•½λœ 버전을 보고 μžˆμ„ μˆ˜λ„ μžˆμŒμ„ μ•Œλ €λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

 

 URL을 크게 단좕할 수 μžˆλŠ” 두 가지 μ„œλΉ„μŠ€λŠ” Bit.ly와 TinyURL.comμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, ν›„μžμ˜ μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ μ €μžλŠ” λ‹€μŒκ³Ό 같은 50자 길이의 URL을:

http://www.popcorn.com/files/html/special/dfg.mpeg

 

λ‹€μŒκ³Ό 같이 26자 길이의 URL둜 단좕할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€:

http://tinyurl.com/ye66ga7

 

Bit.lyλ₯Ό μ‚¬μš©ν•˜λŠ” 경우, μœ„μ˜ 50자 길이의 URL은 λ‹€μŒκ³Ό 같은 20자 길이의 URL둜 λŒ€μ²΄λ©λ‹ˆλ‹€:

http://bit.ly/61KkiE

 

2.2.2 HTML

 

  URL을 톡해 μš”μ²­λ˜λŠ” λ¬Έμ„œλŠ” λŒ€λΆ€λΆ„ HTML(HyperText Markup Language)둜 μΈμ½”λ”©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. HTML은 λ ˆμ΄μ•„μ›ƒ μ„ΈλΆ€ 사항을 μ§€μ •ν•˜μ§€ μ•Šκ³  λ¬Έμ„œμ˜ ꡬ쑰λ₯Ό μ •μ˜ν•˜λŠ” λ§ˆν¬μ—… μ–Έμ–΄μž…λ‹ˆλ‹€.

 

 2.2.2.1 Versions HTML의 기원은 1980λ…„μœΌλ‘œ 거슬러 μ˜¬λΌκ°‘λ‹ˆλ‹€. μŠ€μœ„μŠ€μ˜ CERN(유럽 μž…μž 물리 μ—°κ΅¬μ†Œ)μ—μ„œ κ·Όλ¬΄ν•˜λ˜ λ¬Όλ¦¬ν•™μž νŒ€ λ²„λ„ˆμŠ€λ¦¬(Tim Berners-Lee)κ°€ μ—°κ΅¬μžλ“€μ΄ λ¬Έμ„œλ₯Ό μ‰½κ²Œ κ³΅μœ ν•  수 μžˆλ„λ‘ ν•˜κΈ° μœ„ν•΄ μ‹œμŠ€ν…œμ„ κ°œλ°œν–ˆμ„ λ•Œ, 이것이 λ°”λ‘œ HTML의 μ‹œμž‘μ΄μ—ˆμŠ΅λ‹ˆλ‹€. λ²„λ„ˆμŠ€λ¦¬λŠ” ENQUIRE라 λΆˆλ¦¬λŠ” 이 μž‘μ—…μ„ λ°”νƒ•μœΌλ‘œ HTML을 κ°œλ°œν–ˆκ³ , μ›Ή μ„œν•‘μ΄ κ°€λŠ₯ν•˜λ„λ‘ λΈŒλΌμš°μ €μ™€ μ„œλ²„ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λͺ¨λ‘ ν”„λ‘œκ·Έλž˜λ°ν–ˆμŠ΅λ‹ˆλ‹€. 1991λ…„, λ²„λ„ˆμŠ€λ¦¬λŠ” 20개의 μš”μ†Œλ₯Ό 닀룬 HTML μ„€λͺ…μ„œλ₯Ό λŒ€μ€‘μ—κ²Œ κ³΅κ°œν–ˆμœΌλ©°, 이 쀑 λŒ€λΆ€λΆ„μ˜ μš”μ†ŒλŠ” μ΅œμ‹  버전인 HTML 버전 5에도 μ—¬μ „νžˆ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

 

 HTML의 κ°œλ°œμ€ λ¬Έμ„œμ— λŒ€ν•œ μΌλ°˜ν™”λœ λ§ˆν¬μ—… μ–Έμ–΄λ₯Ό μ •μ˜ν•˜κΈ° μœ„ν•œ ꡭ제 ν‘œμ€€ν™” 기ꡬ(ISO) ν‘œμ€€ 기술인 ν‘œμ€€ μΌλ°˜ν™” λ§ˆν¬μ—… μ–Έμ–΄(SGML, Standard Generalized Markup Language)의 영ν–₯을 많이 λ°›μ•˜μŠ΅λ‹ˆλ‹€. 졜초의 HTML μ΄ˆμ•ˆμ€ 1993λ…„ 인터넷 μ—”μ§€λ‹ˆμ–΄λ§ νƒœμŠ€ν¬ 포슀(IETF)에 μ˜ν•΄ λ°œν‘œλ˜μ—ˆκ³ , μ΄μ–΄μ„œ 1994년에 HTML+ μ΄ˆμ•ˆμ΄ λ°œν‘œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 1995λ…„ IETF HTML μ›Œν‚Ή 그룹은 HTML 2.0 사양을 μ™„μ„±ν•˜μ˜€μœΌλ©°, μ΄λŠ” RFC 1866으둜 λ°œν‘œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ·Έ μ™Έ μ£Όλͺ©ν•  λ§Œν•œ HTML λ²„μ „μ—λŠ” 1997λ…„ 1월에 λ“±μž₯ν•œ HTML 3.2와 1997λ…„ 12월에 처음 λ°œν‘œλ˜κ³  1998λ…„ 4월에 일뢀 μˆ˜μ •λœ HTML 4.0, 1999λ…„ 12월에 λ°œν–‰λœ HTML 4.01, 그리고 2008λ…„ 1월에 μž‘μ—… μ΄ˆμ•ˆμœΌλ‘œ λ°œν–‰λœ HTML 5κ°€ μžˆμŠ΅λ‹ˆλ‹€.

 

 μ „ μ„Έκ³„μ˜ μ„œλ²„κ°€ λ‹€μ–‘ν•œ HTML 버전을 μ‚¬μš©ν•  수 있기 λ•Œλ¬Έμ—, λΈŒλΌμš°μ €κ°€ μ΄λŸ¬ν•œ 점을 κ³ λ €ν•˜μ—¬ 이전 λ²„μ „μ˜ λ§ˆν¬μ—… 언어도 μ§€μ›ν•˜λŠ” ν•˜μœ„ ν˜Έν™˜μ„±μ„ μ œκ³΅ν•˜λŠ” 것은 맀우 μ€‘μš”ν•©λ‹ˆλ‹€.

 

2.2.2.2 HTML Documents HTML λ¬Έμ„œλŠ” ν…μŠ€νŠΈ νŽΈμ§‘κΈ°λ‚˜ ASCII ν˜•μ‹μœΌλ‘œ ν…μŠ€νŠΈλ₯Ό μ €μž₯ν•  수 μžˆλŠ” μ›Œλ“œ ν”„λ‘œμ„Έμ„œλ₯Ό μ‚¬μš©ν•˜μ—¬ μž‘μ„±ν•  수 μžˆλŠ” 평문 ASCII νŒŒμΌμž…λ‹ˆλ‹€. ν…μŠ€νŠΈ λ¬Έμ„œμ˜ κ΅¬μ‘°μ—μ„œ κΈ°λ³Έ ꡬ성 μš”μ†ŒλŠ” μš”μ†Œ(Element)라고 ν•©λ‹ˆλ‹€. μš”μ†Œμ˜ μ˜ˆλ‘œλŠ” 제λͺ©(head), ν‘œ(table), 단락(paragraph), 리슀트(list) 등이 μžˆμŠ΅λ‹ˆλ‹€. νƒœκ·Έ(tag)λ₯Ό μ‚¬μš©ν•˜μ—¬ 파일의 μš”μ†Œλ₯Ό λΈŒλΌμš°μ €μ— ν‘œμ‹œν•  수 μžˆλ„λ‘ ν‘œμ‹œν•©λ‹ˆλ‹€. νƒœκ·ΈλŠ” μ™Όμͺ½ κΊΎμ‡  κ΄„ν˜Έ(<), νƒœκ·Έ 이름, 였λ₯Έμͺ½ κΊΎμ‡  κ΄„ν˜Έ(>)둜 κ΅¬μ„±λ©λ‹ˆλ‹€. νƒœκ·ΈλŠ” 보톡 μ’…λ£Œ νƒœκ·Έμ™€ μŒμ„ 이루며, μ’…λ£Œ νƒœκ·ΈλŠ” μ•žμ— μŠ¬λž˜μ‹œ(/)κ°€ λΆ™μŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, <h1>κ³Ό </h1>은 1단계 제λͺ©μ„ λ‘˜λŸ¬μ‹ΈλŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이와 μœ μ‚¬ν•˜κ²Œ <h2>와 </h2>λŠ” 2단계 제λͺ©μ„ λ‘˜λŸ¬μ‹ΈλŠ” 데 μ‚¬μš©λ˜λ©°, μ΅œλŒ€ 5단계 제λͺ©κΉŒμ§€ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 λŒ€λΆ€λΆ„μ˜ μš”μ†ŒλŠ” μ‹œμž‘ νƒœκ·Έμ™€ μ’…λ£Œ νƒœκ·Έκ°€ μžˆμ§€λ§Œ, 일뢀 μš”μ†ŒλŠ” 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 쀄 λ°”κΏˆ νƒœκ·Έ(<br>)λŠ” λ‚΄μš©μ΄ μ—†μœΌλ©°, μ’…λ£Œ νƒœκ·Έκ°€ μ—†μŠ΅λ‹ˆλ‹€.

 

κ·Έλ¦Ό 2.2λŠ” ν•˜μ΄νΌν…μŠ€νŠΈλ‘œ μ½”λ”©λœ λ¬Έμ„œμ˜ 기본적인 예λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.

<html>
<head>
<title>
Title of document
</title> </head>
<body>
<h1>Header level 1</h1>
Some text goes here
After this text we ad aline break <br> <h2> Header level 2</h2>
Some text goes here
</body>

κ·Έλ¦Ό 2.2 κ°„λ‹¨ν•œ HTML λ¬Έμ„œ 예제.

 

2.2.2.3 Font Control HTML μš”μ†Œ 집합 λ‚΄μ—λŠ” ν…μŠ€νŠΈμ˜ μ™Έν˜•μ„ λ³€κ²½ν•  수 μžˆλŠ” λ§ˆν¬μ—…μ΄ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, boldface νƒœκ·Έ μŒμ€ ν…μŠ€νŠΈκ°€ λ³Όλ“œμ²΄λ‘œ ν‘œμ‹œλ˜μ–΄μ•Ό 함을 λ‚˜νƒ€λ‚΄λ©°, italics νƒœκ·ΈλŠ” ν…μŠ€νŠΈκ°€ μ΄νƒ€λ¦­μ²΄λ‘œ ν‘œμ‹œλ˜μ–΄μ•Ό 함을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. ν‘œ 2.1은 HTMLμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” 7가지 κΈ€κΌ΄ μ œμ–΄ μš”μ†Œλ₯Ό λ‚˜μ—΄ν•©λ‹ˆλ‹€.

 

ν‘œ 2.1에 λ‚˜μ—΄λœ κΈ€κΌ΄ μ œμ–΄ μš”μ†Œ 외에도 <Font Face=> νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ κΈ€κΌ΄ μœ ν˜•μ„ μ§€μ •ν•˜κ³ , <Font Color=> νƒœκ·Έλ‘œ κΈ€κΌ΄ 색상을, <Font Size=> νƒœκ·Έλ‘œ κΈ€κΌ΄ 크기λ₯Ό 지정할 수 있으며, 각 νƒœκ·ΈλŠ” 둜 μ’…λ£Œλ©λ‹ˆλ‹€. λ˜ν•œ, λ‹€μ–‘ν•œ κΈ€κΌ΄ μ œμ–΄ μš”μ†Œλ₯Ό ν˜Όν•©ν•˜μ—¬ νŠΉμ • 크기의 ꡡ은 이타릭체 νŒŒλž€μƒ‰ ν…μŠ€νŠΈλ₯Ό 생성할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ νƒœκ·Έκ°€ μ˜¬λ°”λ₯΄κ²Œ λ Œλ”λ§λ˜λ €λ©΄ μ‚¬μš©ν•˜λŠ” λΈŒλΌμš°μ €μ— 따라 λ‹¬λΌμ§ˆ 수 μžˆμŒμ„ μœ μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ μ΅œμ‹  λΈŒλΌμš°μ €λŠ” μ΄λŸ¬ν•œ μš”μ†Œλ“€μ„ 잘 μ§€μ›ν•˜μ§€λ§Œ, κ΅¬ν˜• λΈŒλΌμš°μ €λŠ” νŠΉμ • νƒœκ·Έ λ˜λŠ” νƒœκ·Έ 쑰합을 ν‘œμ‹œν•˜λŠ” 데 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Table 2.1 Font-Control Elements Available in HTML

 2.2.2.4 Hypertext Links 웹은 μ„Έ 가지 κΈ°λ³Έ 아이디어λ₯Ό λ°”νƒ•μœΌλ‘œ κ΅¬μΆ•λœ λ„€νŠΈμ›Œν¬ μ ‘κ·Ό κ°€λŠ₯ν•œ 정보 μžμ›μ˜ μ§‘ν•©μœΌλ‘œ 간주될 수 μžˆμŠ΅λ‹ˆλ‹€. 이 아이디어듀은 μžμ›μ— μ ‘κ·Όν•  수 μžˆλŠ” κΈ€λ‘œλ²Œ μœ„μΉ˜ 및 이름 지정 체계λ₯Ό μ œκ³΅ν•˜λŠ” URL, μžμ›μ— μ ‘κ·Όν•˜κΈ° μœ„ν•œ HTTP와 같은 ν”„λ‘œν† μ½œ, 그리고 λ‹€λ₯Έ μžμ›μœΌλ‘œμ˜ 링크λ₯Ό 포함할 수 μžˆλŠ” HTML ν˜•νƒœμ˜ ν•˜μ΄νΌν…μŠ€νŠΈμž…λ‹ˆλ‹€. HTMLμ—μ„œλŠ” 액컀(anchor)라고 λΆˆλ¦¬λŠ” 단방ν–₯ 포인터λ₯Ό URLκ³Ό ν•¨κ»˜ νƒœκ·Έ 내에 μ‚¬μš©ν•˜μ—¬ ν•˜μ΄νΌν…μŠ€νŠΈ 링크둜 κΈ°λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€. 액컀 νƒœκ·Έμ—λŠ” aλΌλŠ” λ¬Έμžκ°€ μ‚¬μš©λ˜λ©°, μ΄λŠ” anchor의 μ•½μ–΄λ‘œ, ν•˜μ΄νΌν…μŠ€νŠΈ 링크의 일반 ν˜•μ‹μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

<a href = "destination">label </a>

 μ—¬κΈ°μ„œ 와 νƒœκ·ΈλŠ” 액컀λ₯Ό λ‚˜νƒ€λ‚΄λ©°, β€œdestination”은 URL을, β€œlabel”은 λΈŒλΌμš°μ €κ°€ λͺ©μ μ§€μ˜ 정보λ₯Ό κ²€μƒ‰ν•˜μ—¬ ν‘œμ‹œν•œ 후에 λΈŒλΌμš°μ €μ—μ„œ κ°•μ‘° ν‘œμ‹œλœ 정보 λ˜λŠ” μ„ νƒλœ κ²°κ³Όλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 이 λͺ©μ μ§€ μ •λ³΄λŠ” ν‘œμ‹œλ˜μ§€ μ•ŠμœΌλ©°, μ»€μ„œλ₯Ό β€œlabel” μœ„λ‘œ μ΄λ™μ‹œν‚¬ λ•ŒκΉŒμ§€ 숨겨져 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ, 액컀에 μˆ¨κ²¨μ§„ URL이 λΈŒλΌμš°μ € ν•˜λ‹¨μ— ν‘œμ‹œλ©λ‹ˆλ‹€. 액컀λ₯Ό μ‚¬μš©ν•˜λŠ” ν•œ 가지 μ˜ˆλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

See: <a href="www.popcorn.com/tasty">for tasty popcorn</a> information.

이 μ˜ˆμ‹œλŠ” β€œfor tasty popcornβ€μ΄λΌλŠ” λ ˆμ΄λΈ”μ΄ ν‘œμ‹œλ˜κ³ , 클릭 μ‹œ www.popcorn.com/tasty URL둜 μ—°κ²°λ©λ‹ˆλ‹€.

 

2.2.2.5 Adding Image HTML을 μ‚¬μš©ν•  λ•Œ, μ΄λ―Έμ§€λŠ” νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ HTML νŽ˜μ΄μ§€μ— ν¬ν•¨λ©λ‹ˆλ‹€.

 

νƒœκ·Έμ˜ 일반 ν˜•μ‹μ€ λ‹€μŒκ³Ό κ°™μœΌλ©°, λŒ€κ΄„ν˜Έ([])둜 ν‘œμ‹œλœ 속성은 선택 μ‚¬ν•­μž…λ‹ˆλ‹€:

<img src="URL" alt="text displayed" [attribute]...[attribute] />

비둝 νƒœκ·Έκ°€ λ‹€μ–‘ν•œ 속성을 μ§€μ›ν•˜μ§€λ§Œ, ν•„μˆ˜ 속성은 두 κ°€μ§€λΏμž…λ‹ˆλ‹€: src와 alt. 첫 번째 속성인 srcλŠ” μ΄λ―Έμ§€μ˜ URL을 μ§€μ •ν•˜κ³ , 두 번째 속성인 altλŠ” 이미지가 ν‘œμ‹œλ˜μ§€ μ•Šμ„ 경우 λŒ€μ‹  ν‘œμ‹œν•  ν…μŠ€νŠΈλ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, β€œhomeview.jpgβ€λΌλŠ” μ΄λ¦„μ˜ 사진을 μ›Ή νŽ˜μ΄μ§€μ— ν¬ν•¨μ‹œν‚€κ³ , μ‚¬μš©μžκ°€ λΈŒλΌμš°μ € 섀정을 톡해 이미지λ₯Ό ν‘œμ‹œν•˜μ§€ μ•Šλ„λ‘ κ΅¬μ„±ν–ˆμ„ λ•Œ β€œOur Factoryβ€λΌλŠ” ν…μŠ€νŠΈλ₯Ό ν‘œμ‹œν•˜κ³ μž ν•œλ‹€κ³  κ°€μ •ν•΄ λ΄…μ‹œλ‹€. 이 사진이 www.popcorn.com/files/html μ„œλ²„μ— μœ„μΉ˜ν•˜κ³  μžˆλ‹€κ³  κ°€μ •ν•˜λ©΄, λ‹€μŒκ³Ό 같은

νƒœκ·Έλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

<img src="www.popcorn.com/files/html/homeview.jpg" alt="Our Factory" />

 

Table 2.2 Optional <img> Tag Attributes

 

 Table 2.2λŠ” 9개의 선택적 <img> νƒœκ·Έ 속성과 κ·Έ μ‚¬μš©μ— λŒ€ν•œ κ°„λž΅ν•œ μ„€λͺ…을 λ‚˜μ—΄ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. align, border, space, hspace 속성은 "μ‚¬μš© 쀑단(deprecated)" μ†μ„±μœΌλ‘œ κ°„μ£Όλ©λ‹ˆλ‹€. μ΄λŠ” μ΄λŸ¬ν•œ 속성듀이 더 κΈ°λŠ₯μ μ΄κ±°λ‚˜ μœ μ—°ν•œ λŒ€μ²΄ λ°©μ‹μœΌλ‘œ λŒ€μ²΄λ˜μ—ˆμœΌλ©°, HTML ν‘œμ€€μ„ μ„€μ •ν•˜λŠ” W3C(World Wide Web Consortium)에 μ˜ν•΄ HTML 4μ—μ„œ μ‚¬μš© μ€‘λ‹¨μœΌλ‘œ μ„ μ–Έλ˜μ—ˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ λΈŒλΌμš°μ €λŠ” μ—¬μ „νžˆ μ‚¬μš© μ€‘λ‹¨λœ νƒœκ·Έμ™€ 속성을 지원할 수 μžˆμ§€λ§Œ, κ²°κ΅­μ—λŠ” μ΄λŸ¬ν•œ νƒœκ·Έμ™€ 속성이 더 이상 μ‚¬μš©λ˜μ§€ μ•Šκ²Œ 될 κ°€λŠ₯성이 λ†’μ•„, 미래의 지원을 보μž₯ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μŠ€νƒ€μΌ μ‹œνŠΈλŠ” 이미지λ₯Ό μ‘°μž‘ν•˜λŠ” 데 μžˆμ–΄ 더 μœ μ—°ν•œ 방법을 μ œκ³΅ν•˜μ§€λ§Œ, μ—¬μ „νžˆ 이 λ‹€μ„― 가지 μ‚¬μš© 쀑단 속성은 ν”νžˆ μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이 μ±…μ˜ μ£Όμš” λͺ©μ μ€ μ½˜ν…μΈ  전솑 λ„€νŠΈμ›Œν¬μ™€ λ„€νŠΈμ›Œν‚Ήμ— λŒ€ν•œ λ…Όμ˜μ΄λ―€λ‘œ, <img> νƒœκ·Έ 속성에 λŒ€ν•œ 지식을 μŠ€νƒ€μΌ μ‹œνŠΈμ— λŒ€ν•œ λ…Όμ˜ 없이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

2.2.2.5.1 Image Formats 기술적인 κ΄€μ μ—μ„œ, λΉ„λ””μ˜€λ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  μ΄λ―Έμ§€λŠ” νŠΉμ • ν”„λ ˆμž„ μ†λ„λ‘œ λ°œμƒν•˜λŠ” 일련의 μ΄λ―Έμ§€λ‘œ 간주될 수 있으며, μ΄λŸ¬ν•œ μ΄λ―Έμ§€λŠ” 데이터 파일둜 μ €μž₯λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ΄λ―Έμ§€λŠ” λž˜μŠ€ν„°(raster) ν˜•μ‹ λ˜λŠ” 벑터(vector) ν˜•μ‹μœΌλ‘œ λΆ„λ₯˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 λž˜μŠ€ν„° ν˜•μ‹μ€ 이미지λ₯Ό 일련의 점으둜 λΆ„ν•΄ν•˜μ—¬ μ €μž₯ν•˜λ©°, μ΄λŸ¬ν•œ 점을 ν”½μ…€(pixel)이라고 ν•©λ‹ˆλ‹€. μ›Ήμ—μ„œ μ‚¬μš©λ˜λŠ” λŒ€λΆ€λΆ„μ˜ 이미지 ν˜•μ‹μ€ λž˜μŠ€ν„° ν˜•μ‹ μ΄λ―Έμ§€λ‘œ, κ·Έλž˜ν”½ 인터체인지 ν˜•μ‹(GIF), JPEG(Joint Photographic Experts Group이 κ°œλ°œν•œ ν˜•μ‹), 그리고 λΉ„νŠΈλ§΅(BMP)κ³Ό 같은 ν˜•μ‹μ΄ μžˆμŠ΅λ‹ˆλ‹€.

 

 λ°˜λ©΄μ—, 벑터 μ΄λ―Έμ§€λŠ” CorelDraw(CDR), Microsoft의 Windows Metafiles(WMF), Hewlett-Packard Graphics Language(HPGL)μ—μ„œ μ‚¬μš©λ˜λŠ” μˆ˜ν•™μ  ν‘œν˜„μ‹μ„ 톡해 μƒμ„±λ©λ‹ˆλ‹€. 이 μ±…μ—μ„œλŠ” 주둜 λž˜μŠ€ν„° 이미지에 μ΄ˆμ μ„ 맞좜 κ²ƒμž…λ‹ˆλ‹€. ν‘œ 2.3은 15가지 이미지 파일 ν˜•μ‹ 예제λ₯Ό λ‚˜μ—΄ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 쀑 μ›Ήμ—μ„œ κ°€μž₯ 많이 μ‚¬μš©λ˜λŠ” ν˜•μ‹μ€ JPEG이며, κ·Έ λ‹€μŒμœΌλ‘œ GIF와 κ°„ν—μ μœΌλ‘œ μ‚¬μš©λ˜λŠ” BMP ν˜•μ‹μ΄ μžˆμŠ΅λ‹ˆλ‹€.

 

Table 2.3 Popular Image File Formats

 JPEG μ΄λ―Έμ§€λŠ” 손싀 μ••μΆ• κΈ°λŠ₯을 μ œκ³΅ν•˜μ—¬ 데이터 μ €μž₯ 및 전솑 μš”κ΅¬ 사항을 크게 쀄일 수 있기 λ•Œλ¬Έμ— 맀우 인기가 μžˆμŠ΅λ‹ˆλ‹€. 이 μ±…μ˜ ν›„λ°˜λΆ€μ—μ„œλŠ” 이미지와 λΉ„λ””μ˜€ μ••μΆ•κ³Ό κ΄€λ ¨λœ μ£Όμš” μž₯점에 λŒ€ν•΄ μžμ„Ένžˆ λ…Όμ˜ν•  κ²ƒμž…λ‹ˆλ‹€.

 

2.2.2.6 Adding Video μ›Ή νŽ˜μ΄μ§€μ— λΉ„λ””μ˜€λ₯Ό μΆ”κ°€ν•˜λŠ” λ°λŠ” μ„Έ 가지 일반적인 방법이 μžˆμŠ΅λ‹ˆλ‹€. 첫 번째 방법은 <embed...> νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ λ―Έλ””μ–΄ νŒŒμΌμ„ ν‘œμ‹œν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ‹€μ œλ‘œ <embed...> νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜λ©΄ μ›Ή νŽ˜μ΄μ§€μ— λΈŒλΌμš°μ € ν”ŒλŸ¬κ·ΈμΈμ΄ ν¬ν•¨λ˜λ©°, 이 ν”ŒλŸ¬κ·ΈμΈμ€ ν΄λΌμ΄μ–ΈνŠΈ 컴퓨터에 μœ„μΉ˜ν•œ νŒŒμΌμ„ 보기 μœ„ν•΄ νŠΉλ³„νžˆ μ„€κ³„λœ ν”„λ‘œκ·Έλž¨μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. κ°€μž₯ 일반적인 ν”ŒλŸ¬κ·ΈμΈμ€ μ†Œλ¦¬ 및 μ˜ν™” μž¬μƒμ„ μœ„ν•œ ν”ŒλŸ¬κ·ΈμΈμž…λ‹ˆλ‹€.

 

<embed> νƒœκ·ΈλŠ” μ’…λ£Œ νƒœκ·Έκ°€ ν•„μš”ν•˜μ§€ μ•ŠμœΌλ©°, <img> νƒœκ·Έμ™€ μœ μ‚¬ν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€. <embed...> νƒœκ·Έλ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” src(μ†ŒμŠ€) 속성을 ν¬ν•¨ν•˜μ—¬ λΉ„λ””μ˜€μ˜ μœ„μΉ˜λ₯Ό μ •μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λŠ” λ‹€λ₯Έ URLκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ 둜컬(local) λ˜λŠ” κΈ€λ‘œλ²Œ(global) URL을 μ§€μ •ν•˜μ—¬ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. <embed...> νƒœκ·ΈλŠ” λ‹€μ–‘ν•œ 속성을 μ§€μ›ν•˜λ©°, λŒ€λΆ€λΆ„μ˜ 속성은 ν‘œ 2.4에 λ‚˜μ—΄λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

ν‘œ 2.4의 CONTROLS μ†μ„±μ˜ 기본값은 CONSOLEμž…λ‹ˆλ‹€. 이 값은 λŒ€λΆ€λΆ„μ˜ λΈŒλΌμš°μ €κ°€ μ‹œμž‘ λ²„νŠΌ, μΌμ‹œ 정지 λ²„νŠΌ, 정지 λ²„νŠΌ, λ³Όλ₯¨ μ œμ–΄ 등을 ν¬ν•¨ν•œ 전체 크기의 μ œμ–΄ μ„ΈνŠΈλ₯Ό ν‘œμ‹œν•˜λ„λ‘ ν•©λ‹ˆλ‹€.

 

<embed...> νƒœκ·Έμ˜ 일반 ν˜•μ‹μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

<embed src="URL" [attribute1][...attribute n] />

 νƒœκ·ΈλŠ” src 속성을 μ‚¬μš©ν•˜μ—¬ ν”ŒλŸ¬κ·ΈμΈ 데이터 파일의 μœ„μΉ˜λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 일반적으둜 WIDTH 및 HEIGHT 속성을 ν¬ν•¨ν•˜μ—¬ ν”ŒλŸ¬κ·ΈμΈ μ˜μ—­μ˜ 크기λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ, μ„œλ‘œ λ‹€λ₯Έ λΈŒλΌμš°μ €λŠ” μ„œλ‘œ λ‹€λ₯Έ λ―Έλ””μ–΄ μœ ν˜•μ„ λ‹€λ₯΄κ²Œ λ Œλ”λ§ν•˜κΈ° λ•Œλ¬Έμ—, 높이와 λ„ˆλΉ„λ₯Ό 선택할 λ•ŒλŠ” μ•½κ°„μ˜ μ‹œν–‰μ°©μ˜€κ°€ ν•„μš”ν•  수 있으며, μ—¬λŸ¬ λΈŒλΌμš°μ €λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 ν•„μš”ν•  λ•Œλ„ μžˆμŠ΅λ‹ˆλ‹€.

 

 μ˜ˆλ₯Ό λ“€μ–΄, λ‹€μŒ μ½”λ“œλŠ” popcorn.com 도메인 μ„œλ²„μ— μœ„μΉ˜ν•œ β€œPopcorn-Technologyβ€λΌλŠ” μ΄λ¦„μ˜ MPEG(Motion Picture Experts Group) λΉ„λ””μ˜€λ₯Ό ν΄λΌμ΄μ–ΈνŠΈ μ›Ή νŽ˜μ΄μ§€μ— μ‚½μž…ν•˜κ³ , λΉ„λ””μ˜€λ₯Ό μ¦‰μ‹œ μ‹œμž‘ν•˜λ„λ‘ μ„€μ •ν•©λ‹ˆλ‹€:

<embed src="http://www.popcorn.com/files/video/Popcorn-Technology.mpeg" width="320" height="240" autostart="true" />

 

 μ΄ μ½”λ“œλŠ” src 속성을 톡해 λΉ„λ””μ˜€ 파일의 μœ„μΉ˜λ₯Ό μ§€μ •ν•˜κ³ , width와 height 속성을 톡해 ν”ŒλŸ¬κ·ΈμΈ μ˜μ—­μ˜ 크기λ₯Ό 320x240으둜 μ„€μ •ν•˜λ©°, autostart 속성을 true둜 μ§€μ •ν•˜μ—¬ νŽ˜μ΄μ§€κ°€ λ‘œλ“œλ  λ•Œ λΉ„λ””μ˜€κ°€ μžλ™μœΌλ‘œ μž¬μƒλ˜λ„λ‘ ν•©λ‹ˆλ‹€.

Table 2.4 <embed> Tag Attributes

 

2.2.2.6 Adding Video μ›Ή νŽ˜μ΄μ§€μ— λΉ„λ””μ˜€λ₯Ό μΆ”κ°€ν•˜λŠ” λ°μ—λŠ” μ„Έ 가지 일반적인 방법이 μžˆμŠ΅λ‹ˆλ‹€. 첫 번째 방법은 <embed...> νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ λ―Έλ””μ–΄ νŒŒμΌμ„ ν‘œμ‹œν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ‹€μ œλ‘œ <embed...> νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜λ©΄ μ›Ή νŽ˜μ΄μ§€μ— λΈŒλΌμš°μ € ν”ŒλŸ¬κ·ΈμΈμ΄ ν¬ν•¨λ˜λ©°, 이 ν”ŒλŸ¬κ·ΈμΈμ€ ν΄λΌμ΄μ–ΈνŠΈ 컴퓨터에 μœ„μΉ˜ν•œ νŒŒμΌμ„ 보기 μœ„ν•΄ νŠΉλ³„νžˆ μ„€κ³„λœ ν”„λ‘œκ·Έλž¨μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. κ°€μž₯ 일반적인 ν”ŒλŸ¬κ·ΈμΈμ€ μ†Œλ¦¬ 및 μ˜ν™” μž¬μƒμ„ μœ„ν•œ ν”ŒλŸ¬κ·ΈμΈμž…λ‹ˆλ‹€.

 

<embed> νƒœκ·ΈλŠ” μ’…λ£Œ νƒœκ·Έκ°€ ν•„μš”ν•˜μ§€ μ•ŠμœΌλ©°, <img> νƒœκ·Έμ™€ μœ μ‚¬ν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€. <embed...> νƒœκ·Έλ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” src(μ†ŒμŠ€) 속성을 ν¬ν•¨ν•˜μ—¬ λΉ„λ””μ˜€μ˜ μœ„μΉ˜λ₯Ό μ •μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λŠ” λ‹€λ₯Έ URLκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ 둜컬(local) λ˜λŠ” κΈ€λ‘œλ²Œ(global) URL을 μ§€μ •ν•˜μ—¬ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. <embed...> νƒœκ·ΈλŠ” λ‹€μ–‘ν•œ 속성을 μ§€μ›ν•˜λ©°, λŒ€λΆ€λΆ„μ˜ 속성은 ν‘œ 2.4에 λ‚˜μ—΄λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

 

ν‘œ 2.4의 CONTROLS μ†μ„±μ˜ 기본값은 CONSOLEμž…λ‹ˆλ‹€. 이 값은 λŒ€λΆ€λΆ„μ˜ λΈŒλΌμš°μ €κ°€ μ‹œμž‘ λ²„νŠΌ, μΌμ‹œ 정지 λ²„νŠΌ, 정지 λ²„νŠΌ, λ³Όλ₯¨ μ œμ–΄ 등을 ν¬ν•¨ν•œ 전체 크기의 μ œμ–΄ μ„ΈνŠΈλ₯Ό ν‘œμ‹œν•˜λ„λ‘ ν•©λ‹ˆλ‹€.

<embed...> νƒœκ·Έμ˜ 일반 ν˜•μ‹μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

<embed src="URL" [attribute1][...attribute n] />

 

 νƒœκ·ΈλŠ” src 속성을 μ‚¬μš©ν•˜μ—¬ ν”ŒλŸ¬κ·ΈμΈ 데이터 파일의 μœ„μΉ˜λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 일반적으둜 WIDTH 및 HEIGHT 속성을 ν¬ν•¨ν•˜μ—¬ ν”ŒλŸ¬κ·ΈμΈ μ˜μ—­μ˜ 크기λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ, μ„œλ‘œ λ‹€λ₯Έ λΈŒλΌμš°μ €λŠ” μ„œλ‘œ λ‹€λ₯Έ λ―Έλ””μ–΄ μœ ν˜•μ„ λ‹€λ₯΄κ²Œ λ Œλ”λ§ν•˜κΈ° λ•Œλ¬Έμ—, 높이와 λ„ˆλΉ„λ₯Ό 선택할 λ•ŒλŠ” μ•½κ°„μ˜ μ‹œν–‰μ°©μ˜€κ°€ ν•„μš”ν•  수 있으며, μ—¬λŸ¬ λΈŒλΌμš°μ €λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 ν•„μš”ν•  λ•Œλ„ μžˆμŠ΅λ‹ˆλ‹€.

 

 μ˜ˆλ₯Ό λ“€μ–΄, λ‹€μŒ μ½”λ“œλŠ” popcorn.com 도메인 μ„œλ²„μ— μœ„μΉ˜ν•œ β€œPopcorn-Technologyβ€λΌλŠ” μ΄λ¦„μ˜ MPEG(Motion Picture Experts Group) λΉ„λ””μ˜€λ₯Ό ν΄λΌμ΄μ–ΈνŠΈ μ›Ή νŽ˜μ΄μ§€μ— μ‚½μž…ν•˜κ³ , λΉ„λ””μ˜€λ₯Ό μ¦‰μ‹œ μ‹œμž‘ν•˜λ„λ‘ μ„€μ •ν•©λ‹ˆλ‹€:

<embed src="http://www.popcorn.com/files/video/Popcorn-Technology.mpeg" width="320" height="240" autostart="true" />

 νƒœκ·ΈλŠ” HTML 4 μ‚¬μ–‘μ˜ 일뢀가 μ•„λ‹ˆμ§€λ§Œ, μ—¬μ „νžˆ λ§Žμ€ μ΅œμ‹  λΈŒλΌμš°μ €μ—μ„œ 널리 μ§€μ›λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ νƒœκ·Έμ™€ 달리, νƒœκ·Έμ—μ„œ μ‚¬μš©ν•˜λŠ” 속성은 μ‚¬μš© 쀑인 ν”ŒλŸ¬κ·ΈμΈμ˜ μœ ν˜•μ— 따라 λ‹€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μœ μ—°ν•œ νŠΉμ„± λ•Œλ¬Έμ— νƒœκ·Έκ°€ HTML ν‘œμ€€μ„ λ§Œλ“œλŠ” 기관에 μ˜ν•΄ κ±°λΆ€λœ μ΄μœ κ°€ 될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

 

 λ‘ 번째 방법은 액컀 νƒœκ·Έμ˜ HREF 속성에 λ―Έλ””μ–΄ 파일의 URL을 λ„£λŠ” κ²ƒμž…λ‹ˆλ‹€. HREF 속성은 μ—°κ²°λœ URL을 μ§€μ •ν•˜λ©°, 액컀λ₯Ό 링크둜 λ³€ν™˜ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ‹€μŒ νƒœκ·ΈλŠ” Popcorn-Technology MPEG λΉ„λ””μ˜€λ₯Ό 보기 μœ„ν•œ 링크λ₯Ό μƒμ„±ν•˜λ©°, β€œView the Videoβ€λΌλŠ” λ©”μ‹œμ§€λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€. μ‚¬μš©μžκ°€ 이 링크λ₯Ό ν΄λ¦­ν•˜λ©΄ ν΄λΌμ΄μ–ΈνŠΈ λΈŒλΌμš°μ €μ— λΉ„λ””μ˜€κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

<a href="http://www.popcorn.com/files/html/Popcorn-Technology.mpeg">View the Video</a>

 ν˜„λŒ€ μ›Ή νŽ˜μ΄μ§€μ—μ„œ λΉ„λ””μ˜€μ˜ 역할을 μΈμ‹ν•œ HTML 5 κ°œλ°œμžλŠ” 사양에 λΉ„λ””μ˜€ μš”μ†Œ(video element)λ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. HTML 5μ—μ„œ μΆ”κ°€λœ λΉ„λ””μ˜€ μš”μ†ŒλŠ” 블둝 레벨 μš”μ†Œ(block-level element)둜 μž‘λ™ν•˜λ©°, μ΄λŠ” HTML λ¬Έμ„œμ˜ λ³Έλ¬Έ 내에 ν¬ν•¨λ˜μ–΄ λ¬Έμ„œμ˜ ꡬ쑰λ₯Ό ν˜•μ„±ν•¨μ„ μ˜λ―Έν•©λ‹ˆλ‹€. μ•žμ„œ μ„€λͺ…ν•œ νƒœκ·Έμ™€ μœ μ‚¬ν•˜κ²Œ, HTML 5μ—μ„œ μ •μ˜λœ λΉ„λ””μ˜€ μš”μ†ŒλŠ” autoplay, autobuffer, controls, height, loop, poster, src, width와 같은 일련의 속성을 ν¬ν•¨ν•©λ‹ˆλ‹€.

 

 μœ„μ—μ„œ μ–ΈκΈ‰ν•œ 두 가지 속성에 λŒ€ν•΄ 쑰금 더 μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€. 첫째, autobuffer 속성은 μ§€μ •λ˜λ©΄ λΉ„λ””μ˜€κ°€ μžλ™μœΌλ‘œ 버퍼링을 μ‹œμž‘ν•©λ‹ˆλ‹€. 이 속성은 ν΄λΌμ΄μ–ΈνŠΈ λΈŒλΌμš°μ €κ°€ νŠΉμ • λΉ„λ””μ˜€λ₯Ό μ‹œμ²­ν•˜κΈ° μœ„ν•΄ ν•΄λ‹Ή μ›Ή νŽ˜μ΄μ§€λ‘œ 이동할 κ°€λŠ₯성이 높을 λ•Œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ‰΄μŠ€ 쑰직의 μ›Ή νŽ˜μ΄μ§€μ²˜λŸΌ μ—¬λŸ¬ λΉ„λ””μ˜€κ°€ ν¬ν•¨λœ νŽ˜μ΄μ§€μ—μ„œλŠ” μ ν•©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

 

 λ‘˜μ§Έ, poster 속성은 ν΄λΌμ΄μ–ΈνŠΈκ°€ λΉ„λ””μ˜€λ₯Ό μž¬μƒν•˜κΈ° μ „κΉŒμ§€ ν‘œμ‹œν•  ν¬μŠ€ν„° ν”„λ ˆμž„μ˜ URL을 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 속성이 μ—†μœΌλ©΄, 첫 번째 ν”„λ ˆμž„μ΄ μ‚¬μš© κ°€λŠ₯ν•΄μ§ˆ λ•ŒκΉŒμ§€ 아무것도 ν‘œμ‹œλ˜μ§€ μ•ŠμœΌλ©°, 첫 번째 ν”„λ ˆμž„μ΄ λ‘œλ“œλ˜λ©΄ ν¬μŠ€ν„° ν”„λ ˆμž„μœΌλ‘œ ν‘œμ‹œλ©λ‹ˆλ‹€.

 

2.2.2.6.1 Video Formats 이미지와 λ§ˆμ°¬κ°€μ§€λ‘œ, μ›Ήμ—μ„œλŠ” λ‹€μ–‘ν•œ λΉ„λ””μ˜€ 파일 ν˜•μ‹μ΄ μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 널리 μ‚¬μš©λ˜λŠ” λΉ„λ””μ˜€ 파일 ν˜•μ‹μœΌλ‘œλŠ” Apple Computer의 QuickTime(.mov 및 .qt 파일), Microsoft의 AVI(Audio Video Interleave), Adobe Flash ν‘œμ€€μ˜ SWF ν˜•μ‹, SWF νŒŒμΌμ— ν¬ν•¨λœ νŠΉμˆ˜ν•œ μœ ν˜•μ˜ Flash λΉ„λ””μ˜€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” FLV, .mp4 ν™•μž₯자λ₯Ό 가진 MPEG-4 λΉ„λ””μ˜€ 파일, Real Media(.rm 및 .rmvb 파일), 그리고 .wmv ν™•μž₯자λ₯Ό 가진 Microsoft의 Windows Media Video 파일 등이 μžˆμŠ΅λ‹ˆλ‹€.

 

 μ•ˆνƒ€κΉκ²Œλ„, 이 책이 κ°œμ •λ  λ‹Ήμ‹œ Microsoft의 Windows Media VideoλŠ” ν‘œμ€€ν™”λœ μ΅œμ‹  MPEG-4와 ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” λΉ„ν‘œμ€€ MPEG-4 코덱(coder-decoder)λ§Œμ„ μ§€μ›ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 이와 μœ μ‚¬ν•˜κ²Œ, λΉ„λ””μ˜€ 파일 κ°„μ˜ ν˜Έν™˜μ„±μ—λ„ μ—¬λŸ¬ 가지 문제점이 있으며, μ΄λŠ” 30개 μ΄μƒμ˜ 파일 ν˜•μ‹μ„ μ§€μ›ν•˜λŠ” λΉ„λ””μ˜€ λ³€ν™˜κΈ°(Video Converter) μ†Œν”„νŠΈμ›¨μ–΄μ˜ 인기λ₯Ό λΆˆλŸ¬μΌμœΌμΌ°μŠ΅λ‹ˆλ‹€.

 

 2.2.2.6.2 Video Servers and Streaming Video λΉ„λ””μ˜€ μ„œλ²„(video server)λŠ” 일반적으둜 λΉ„λ””μ˜€ μ €μž₯μ†Œλ‘œ μ‚¬μš©λ˜λŠ” 컴퓨터λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. λΉ„λ””μ˜€ μ„œλ²„κ°€ μ œκ³΅ν•˜λŠ” μ£Όμš” μ‘μš© ν”„λ‘œκ·Έλž¨ 쀑 ν•˜λ‚˜λŠ” 슀트리밍 λΉ„λ””μ˜€(streaming video)의 μ§€μ›μž…λ‹ˆλ‹€. 슀트리밍 λΉ„λ””μ˜€λŠ” 데이터 λ„€νŠΈμ›Œν¬λ₯Ό ν†΅ν•œ 단방ν–₯ λΉ„λ””μ˜€ 전솑을 λ‚˜νƒ€λ‚΄λ©°, μ›ΉλΏλ§Œ μ•„λ‹ˆλΌ κΈ°μ—… λ„€νŠΈμ›Œν¬μ—μ„œλ„ λΉ„λ””μ˜€ 클립 및 λΉ„λ””μ˜€ 방솑을 μž¬μƒν•˜κΈ° μœ„ν•΄ 널리 μ‚¬μš©λ©λ‹ˆλ‹€. κ°€μ •μ—μ„œλŠ” κ°€μ • λ„€νŠΈμ›Œν¬μ˜ 컴퓨터λ₯Ό 디지털 λ―Έλ””μ–΄ ν—ˆλΈŒμ— μ—°κ²°λœ ν™ˆ μ‹œμ–΄ν„°λ‘œ λΉ„λ””μ˜€λ₯Ό μŠ€νŠΈλ¦¬λ°ν•  수 μžˆλ„λ‘ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

 νŒŒμΌμ΄ μ „λΆ€ λ‹€μš΄λ‘œλ“œλ˜κ³  μ €μž₯된 ν›„ μž¬μƒλ˜λŠ” μ˜ν™” 파일과 달리, 슀트리밍 λΉ„λ””μ˜€λŠ” μ†ŒλŸ‰μ˜ λ°μ΄ν„°λ§Œ μˆ˜μ‹ λ˜κ³  λ²„νΌλ§λœ 직후 μž¬μƒλ˜λ©°, λ‹€μš΄λ‘œλ“œλœ μ½˜ν…μΈ λŠ” λͺ©μ μ§€ 컴퓨터에 μ €μž₯λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

 

 μŠ€νŠΈλ¦¬λ° λΉ„λ””μ˜€κ°€ μ‹€μ‹œκ°„μœΌλ‘œ 방솑될 경우, 예λ₯Ό λ“€μ–΄, Victoria's Secret μ—°λ‘€ νŒ¨μ…˜μ‡Όμ™€ 같은 μ΄λ²€νŠΈλŠ” 일반적으둜 "μ‹€μ‹œκ°„ λΉ„λ””μ˜€(real-time video)"라고 λΆˆλ¦½λ‹ˆλ‹€. ν•˜μ§€λ§Œ 기술적으둜 μ‹€μ‹œκ°„μ€ 지연이 μ—†μŒμ„ μ˜λ―Έν•˜λ―€λ‘œ, 슀트리밍 λΉ„λ””μ˜€μ—λŠ” μ•½κ°„μ˜ λ‚΄μž₯ 지연이 μ‘΄μž¬ν•œλ‹€λŠ” 점을 μœ μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

 μŠ€νŠΈλ¦¬λ° λ―Έλ””μ–΄μ˜ 데이터 μ €μž₯ μš”κ΅¬ 사항은 μƒλ‹Ήνžˆ 클 수 있으며, λŒ€κ°œ λ³„λ„μ˜ μ„œλ²„λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•  ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ••μΆ•λ˜μ§€ μ•Šμ€ 데이터 μ €μž₯ μš”κ΅¬ 사항은 λ‹€μŒ κ³΅μ‹μœΌλ‘œ μ‰½κ²Œ 계산할 수 μžˆμŠ΅λ‹ˆλ‹€:

storage size (in mebibytes) = length (in seconds) Γ— height (pixels) Γ— width (pixels) Γ— frame rate (frames/second) / (8 Γ— 1024 Γ— 1024)

1 λ©”λΉ„λ°”μ΄νŠΈ(MiB)λŠ” 8 Γ— 1024 Γ— 1024 λΉ„νŠΈμ΄λ―€λ‘œ λ‹€μŒκ³Ό 같이 κ³„μ‚°λ©λ‹ˆλ‹€.

 

 μ˜ˆλ₯Ό λ“€μ–΄, 해상도가 420 Γ— 320 픽셀이고 ν”„λ ˆμž„ 속도가 30 fps인 60초 길이의 μ••μΆ•λ˜μ§€ μ•Šμ€ λΉ„λ””μ˜€ 클립의 경우, μ €μž₯ μš©λŸ‰μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

MiB = 60 seconds Γ— 420 pixels Γ— 320 pixels Γ— 30 fps / (8 Γ— 1024 Γ— 1024) = 28.839 MiB

 μ΄λŠ” 1λΆ„ λΆ„λŸ‰μ˜ λΉ„λ””μ˜€μ— λŒ€ν•œ μ €μž₯ μš©λŸ‰μž…λ‹ˆλ‹€. PC의 λ°œμ „μ„ 생각해보면, 뢈과 10λ…„ μ „λ§Œ ν•˜λ”λΌλ„ 1λΆ„ λΆ„λŸ‰μ˜ λΉ„λ””μ˜€λ₯Ό μ €μž₯ν•˜λ €λ©΄ 컴퓨터 ν•˜λ“œ λ“œλΌμ΄λΈŒμ˜ λŒ€λΆ€λΆ„μ˜ μš©λŸ‰μ„ ν•„μš”λ‘œ ν–ˆμ„ κ²ƒμž…λ‹ˆλ‹€. μ˜€λŠ˜λ‚  λ§Žμ€ PCμ—μ„œ μ œκ³΅λ˜λŠ” 수 ν…ŒλΌλ°”μ΄νŠΈμ˜ μ €μž₯ μš©λŸ‰μ„ κ³ λ €ν•˜λ”λΌλ„, 이λ₯Ό 톡해 μ΅œλŒ€ 30λΆ„ λΆ„λŸ‰μ˜ λΉ„λ””μ˜€λ§Œ μ €μž₯ν•  수 있기 λ•Œλ¬Έμ—, λΉ„λ””μ˜€ 이미지 μž‘μ—…μ—μ„œ 데이터 압좕은 맀우 μ€‘μš”ν•©λ‹ˆλ‹€.

 

2.2.3 HTTP

ν•˜μ΄νΌν…μŠ€νŠΈ 전솑 ν”„λ‘œν† μ½œ(HTTP)은 μƒνƒœκ°€ μ—†λŠ”(stateless), λΉ„μ—°κ²°ν˜•(connectionless), μ‹ λ’°ν•  수 μžˆλŠ”(reliable) ν”„λ‘œν† μ½œμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. HTTPλŠ” TCP(Transmission Control Protocol)λ₯Ό μ‚¬μš©ν•˜μ—¬ μ›Ή νŽ˜μ΄μ§€λ₯Ό μ›Ή μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈμ˜ μ›Ή λΈŒλΌμš°μ €λ‘œ μ „μ†‘ν•˜λ©°, 주둜 포트 80을 μ‚¬μš©ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ μƒνƒœκ°€ μ—†λŠ”(stateless)μ΄λΌλŠ” μš©μ–΄λŠ” 각 HTTP 전솑이 이전에 λ°œμƒν•œ 정보에 μ˜μ‘΄ν•˜μ§€ μ•Šκ³  λ…λ¦½μ μœΌλ‘œ μˆ˜ν–‰λ¨μ„ μ˜λ―Έν•©λ‹ˆλ‹€. 이 ν”„λ‘œν† μ½œμ€ λΉ„μ—°κ²°ν˜•(connectionless)으둜, HTTP λ©”μ‹œμ§€κ°€ μˆ˜μ‹ μžμ™€μ˜ 연결을 μ„€μ •ν•˜μ§€ μ•Šκ³ λ„ 전솑될 수 μžˆμŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ, HTTPλŠ” μ‹ λ’°ν•  수 μžˆλŠ”(reliable) ν”„λ‘œν† μ½œλ‘œ, μ‹ λ’°ν•  수 μžˆλŠ” 였λ₯˜ κ²€μΆœ 및 μˆ˜μ • κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” TCP 전솑 ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•©λ‹ˆλ‹€. 3μž₯μ—μ„œ TCP/IP에 λŒ€ν•΄ 더 깊이 λ‹€λ£¨κ² μ§€λ§Œ, ν˜„μž¬λ‘œμ„œλŠ” HTTPκ°€ IP λ°μ΄ν„°κ·Έλž¨ λ‚΄μ˜ TCPλ₯Ό 톡해 μ „μ†‘λœλ‹€λŠ” 점만 μ΄ν•΄ν•˜κ³  λ„˜μ–΄κ°€λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

 

2.2.3.1 Versions ν˜„μž¬ HTTP의 버전은 1.1이며, 이전 λ²„μ „μœΌλ‘œλŠ” 0.9와 1.0이 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  HTTP λ©”μ‹œμ§€μ˜ 첫 번째 μ€„μ—λŠ” HTTP/1.1κ³Ό 같은 버전 λ²ˆν˜Έκ°€ ν¬ν•¨λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

 

2.2.3.2 Operation μ•žμ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄, HTTP λ©”μ‹œμ§€λŠ” μƒνƒœκ°€ μ—†κ³ , λΉ„μ—°κ²°ν˜•μ΄λ©°, μ‹ λ’°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. HTTP λ©”μ‹œμ§€λŠ” μš”μ²­(Request), 응닡(Response), μ’…λ£Œ(Close)의 μ„Έ 가지 λ²”μ£Όλ‘œ λ‚˜λ‰©λ‹ˆλ‹€.

 

2.2.3.2.1 Request Message ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ λͺ¨λ“  HTTP μƒν˜Έμž‘μš©μ€ ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μœΌλ‘œ μ‹œμž‘λ©λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈλŠ” ν•˜μ΄νΌλ§ν¬λ₯Ό ν΄λ¦­ν•˜κ±°λ‚˜, λΈŒλΌμš°μ € μ£Όμ†Œμ°½μ— URL을 μž…λ ₯ν•˜κ±°λ‚˜, 뢁마크λ₯Ό μ„ νƒν•˜μ—¬ URL을 λΈŒλΌμš°μ €μ— μž…λ ₯ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μž‘μ—… 쀑 ν•˜λ‚˜κ°€ μˆ˜ν–‰λ˜λ©΄, λΈŒλΌμš°μ €λŠ” μ„ νƒν•œ μžμ›μ„ κ°€μ Έμ˜΅λ‹ˆλ‹€. 이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ λΈŒλΌμš°μ €λŠ” λ‹€μŒκ³Ό 같은 HTTP μš”μ²­μ„ μƒμ„±ν•©λ‹ˆλ‹€:

Request Line: GET /index.html HTTP/1.1
Header Fields: Host: www.popcorn.com
User-Agent: Mozilla/4.0

이 HTTP μš”μ²­μ—μ„œ User-AgentλŠ” μ›Ή μ½˜ν…μΈ λ₯Ό κ²€μƒ‰ν•˜κ³  ν‘œμ‹œν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. λ„·μŠ€μΌ€μ΄ν”„(Netscape)의 λΈŒλΌμš°μ €λŠ” "Mozilla" μ‚¬μš©μž μ—μ΄μ „νŠΈλ‘œ μ‹λ³„λ˜λ©°, Microsoft의 Internet ExplorerλŠ” User-Agent ν•„λ“œμ— "MSIE" λ¬Έμžμ—΄κ³Ό 버전 λ²ˆν˜Έκ°€ ν¬ν•¨λ©λ‹ˆλ‹€.

 

GET μš”μ²­ 외에도 λΈŒλΌμš°μ €λŠ” μ—¬λŸ¬ 가지 λ‹€λ₯Έ μœ ν˜•μ˜ μš”μ²­μ„ 보낼 수 μžˆμŠ΅λ‹ˆλ‹€. 이제 HTTP μš”μ²­ λ©”μ„œλ“œμ˜ ꡬ쑰와 ν•΄λ‹Ή μš”μ²­ ν˜•μ‹μ— λŒ€ν•΄ μžμ„Ένžˆ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

μ•žμ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄, μš”μ²­ λ©”μ‹œμ§€λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ μ „μ†‘λ©λ‹ˆλ‹€. λ©”μ‹œμ§€μ˜ 첫 번째 μ€„μ—λŠ” μžμ›μ— μ μš©ν•  μš”μ²­ λ©”μ„œλ“œ, μžμ›μ˜ μ‹λ³„μž, 그리고 μ‚¬μš© 쀑인 ν”„λ‘œν† μ½œ 버전이 ν¬ν•¨λ©λ‹ˆλ‹€. 이전 λ²„μ „μ˜ HTTPμ™€μ˜ ν•˜μœ„ ν˜Έν™˜μ„±μ„ μ œκ³΅ν•˜κΈ° μœ„ν•΄ HTTP μš”μ²­μ—λŠ” 두 가지 μœ νš¨ν•œ ν˜•μ‹μ΄ 있으며, μ΄λŠ” κ·Έλ¦Ό 2.3에 ν‘œμ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

 

κ·Έλ¦Ό 2.3에 ν‘œμ‹œλœ HTTP μš”μ²­ λ©”μ‹œμ§€ ν˜•μ‹μ„ μ‚΄νŽ΄λ³΄λ©΄ λͺ‡ 가지 ν•­λͺ©μ„ λ…Όμ˜ν•  ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€. 첫째, HTTP/1.0 μ„œλ²„κ°€ λ‹¨μˆœ μš”μ²­(Simple-Request)을 μˆ˜μ‹ ν•˜λ©΄, HTTP/0.9 λ‹¨μˆœ 응닡(Simple-Response)으둜 응닡해야 ν•©λ‹ˆλ‹€. HTTP/1.0 ν΄λΌμ΄μ–ΈνŠΈκ°€ 전체 응닡(Full-Response)을 μˆ˜μ‹ ν•  수 μžˆλŠ” 경우, λ‹¨μˆœ μš”μ²­μ„ μƒμ„±ν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. λ‘˜μ§Έ, Request-Line은 μš”μ²­ λ©”μ„œλ“œ ν† ν°μœΌλ‘œ μ‹œμž‘ν•˜κ³ , Request-URL 및 ν”„λ‘œν† μ½œ 버전이 λ’€λ”°λ₯΄λ©°, λ§ˆμ§€λ§‰μ— 캐리지 리턴 라인 ν”Όλ“œ(CRLF)둜 λλ‚©λ‹ˆλ‹€. λ”°λΌμ„œ 전체 μš”μ²­(Full-Request)의 경우, λ‹€μŒκ³Ό 같은 ν˜•μ‹μ„ κ°–μŠ΅λ‹ˆλ‹€:

Request=Simple Request/Ful-Request 
Simple-Request="GET" SP Request-URL CRLF 
Full-Request= Request-Line
            *(General-Header 
            I Request-Header 
            I Entity-Header
            CRLF
            (Entity-Body)

κ·Έλ¦Ό 2.3 HTTP μš”μ²­ ν˜•μ‹

Request-line = Method SP Request-URL SP HTTP-Version CRLF

Method 토큰은 Request-URL둜 μ‹λ³„λœ μžμ›μ— μˆ˜ν–‰ν•  λ©”μ„œλ“œλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. HTTP 1.0μ—μ„œλŠ” λ‹€μŒκ³Ό 같은 λ©”μ„œλ“œκ°€ μ •μ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€:

Method = "GET" / "HEAD" / "POST" / extension-method
extension-method = token
  • GET 토큰은 Request-URL둜 μ‹λ³„λœ 정보λ₯Ό κ²€μƒ‰ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
  • HEAD 토큰은 GET λ©”μ„œλ“œμ™€ μœ μ‚¬ν•˜κ²Œ μž‘λ™ν•˜μ§€λ§Œ, μ„œλ²„κ°€ μ‘λ‹΅μ—μ„œ Entity-Body(정보)λ₯Ό λ°˜ν™˜ν•˜μ§€ μ•ŠμœΌλ©°, 즉, HTTP ν—€λ”λ§Œ λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • POST 토큰은 κΈ°μ‘΄ μžμ›μ„ 주석 μ²˜λ¦¬ν•˜κ±°λ‚˜, λ©”μ‹œμ§€λ₯Ό κ²Œμ‹œν•˜κ±°λ‚˜, 양식을 μ œμΆœν•˜λŠ” κ²ƒμ²˜λŸΌ μ„œλ²„μ— 데이터 블둝을 μ œκ³΅ν•˜λŠ” λ©”μ»€λ‹ˆμ¦˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­μ„ 전솑할 λ•ŒλŠ” 일반적으둜 μ—¬λŸ¬ 헀더 ν•„λ“œλ₯Ό ν•¨κ»˜ μ „μ†‘ν•©λ‹ˆλ‹€. μ•žμ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄, μ΄λŸ¬ν•œ ν•„λ“œμ—λŠ” ν•„λ“œ 이름, 콜둠, ν•˜λ‚˜ μ΄μƒμ˜ 곡백 문자(SP), 그리고 값이 ν¬ν•¨λ©λ‹ˆλ‹€. Request-Lineκ³Ό General-Header λ‹€μŒμ—λŠ” ν•˜λ‚˜ μ΄μƒμ˜ 선택적 HTTP Request-Headersκ°€ 올 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν—€λ”λŠ” ν΄λΌμ΄μ–ΈνŠΈμ™€ κ·Έ μš”μ²­μ— λŒ€ν•œ μΆ”κ°€ 정보λ₯Ό μ „λ‹¬ν•˜κ±°λ‚˜, μš”μ²­μ— νŠΉμ • 쑰건을 μΆ”κ°€ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 헀더 ν•„λ“œ 라인의 ν˜•μ‹μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

Field Name: Value
Content Type: text/html

ν‘œ 2.5λŠ” 일반적으둜 μ‚¬μš©λ˜λŠ” 7개의 HTTP μš”μ²­ 헀더λ₯Ό λ‚˜μ—΄ν•˜κ³ , 각 헀더에 λŒ€ν•œ κ°„λž΅ν•œ μ„€λͺ…을 μ œκ³΅ν•©λ‹ˆλ‹€.

 

HTTP μš”μ²­μ˜ ν₯미둜운 μΈ‘λ©΄ 쀑 ν•˜λ‚˜λŠ” Referrer 헀더 ν•„λ“œμž…λ‹ˆλ‹€. μ›Ή νŽ˜μ΄μ§€λ₯Ό νƒμƒ‰ν•˜λ‹€κ°€ 액컀λ₯Ό ν΄λ¦­ν•˜λ©΄, Referrer 헀더 ν•„λ“œλŠ” ν•΄λ‹Ή 액컀λ₯Ό ν˜ΈμΆœν•œ URL(즉, μ‚¬μš©μžκ°€ 보고 있던 νŽ˜μ΄μ§€)을 λͺ©μ μ§€ μ„œλ²„μ— μ•Œλ €μ€λ‹ˆλ‹€. λ”°λΌμ„œ, 이 μ •λ³΄λŠ” 간접적인 νŠΈλž˜ν”½ 흐름과 κ΄‘κ³ μ˜ 효과λ₯Ό μΈ‘μ •ν•˜λŠ” 데 μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

Table 2.5 Common HTTP Request Headers

Request=Simple Request/Full-Request 
Simple-Request=[Entity-Body]
Full-Request= Request-Line
            *(General-Header 
            I Request-Header 
            I Entity-Header
            CRLF
            [Entity-Body]

Figure 2.4 HTTP reuquest formats

 

2.2.3.2.2 Response Message μ„œλ²„κ°€ μš”μ²­ λ©”μ‹œμ§€λ₯Ό μˆ˜μ‹ ν•˜κ³  ν•΄μ„ν•œ ν›„μ—λŠ” HTTP 응닡 λ©”μ‹œμ§€λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. HTTP 응닡 λ©”μ‹œμ§€μ˜ ν˜•μ‹μ€ κ·Έλ¦Ό 2.4에 ν‘œμ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

 

 μš”μ²­ λ©”μ‹œμ§€μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ, λ‹¨μˆœ 응닡(Simple-Response)은 HTTP/0.9 λ‹¨μˆœ μš”μ²­(Simple-Request)μ—λ§Œ μ‘λ‹΅μœΌλ‘œ λ°˜ν™˜λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. Status-line은 전체 응닡(Full-Response) λ©”μ‹œμ§€μ˜ 첫 번째 쀄이며, ν”„λ‘œν† μ½œ 버전, 숫자둜 된 μƒνƒœ μ½”λ“œ 및 κ΄€λ ¨λœ ν…μŠ€νŠΈ ν‘œν˜„μœΌλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€. 각 μš”μ†ŒλŠ” 곡백 문자(SP)둜 κ΅¬λΆ„λ©λ‹ˆλ‹€. Status-line의 ν˜•μ‹μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

Status-line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

ν‘œ 2.6μ—λŠ” ν˜„μž¬ μ •μ˜λœ μƒνƒœ μ½”λ“œ 및 κ΄€λ ¨λœ ν…μŠ€νŠΈ ν‘œν˜„μ΄ λ‚˜μ—΄λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

 

μƒνƒœ μ½”λ“œλŠ” λ‹€μ–‘ν•œ 상황을 λ°˜μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, ν΄λΌμ΄μ–ΈνŠΈκ°€ μ œν•œλœ μ›Ή μ„œλ²„ μœ„μΉ˜μ— μ ‘κ·Όν•˜λ €κ³  ν•˜λ©΄, μ„œλ²„λŠ” "401" λ©”μ‹œμ§€λ‘œ μš”μ²­μ„ κ±°λΆ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈκ°€ 인증을 μˆ˜ν–‰ν•˜κΈ°λ₯Ό μ›ν•˜λŠ” 경우, λ¨Όμ € "401" λ©”μ‹œμ§€λ‘œ μš”μ²­μ„ κ±°λΆ€ν•˜κ³  WWW-Authenticate ν•„λ“œμ— 인증 μš”κ΅¬ 사항에 λŒ€ν•œ 정보λ₯Ό ν‘œμ‹œν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈκ°€ 인증을 μˆ˜ν–‰ν•  수 μžˆλŠ” κΆŒν•œμ΄ μžˆλŠ”μ§€ ν™•μΈν•˜λ„λ‘ ν•©λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈκ°€ 인증 κΆŒν•œμ΄ μžˆλ‹€κ³  νŒλ‹¨ν•˜λ©΄, 이후 μš”μ²­μ— μ‚¬μš©μž ID와 λΉ„λ°€λ²ˆν˜Έλ₯Ό ν¬ν•¨ν•˜μ—¬ 전솑할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

2.2.3.3 HTTP 1.1 κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” HTTP 버전은 1.1이며, 이전 λ²„μ „μ˜ ν”„λ‘œν† μ½œμ— λΉ„ν•΄ λͺ‡ 가지 κ°œμ„  사항이 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

 

ν‘œ 2.6: μ •μ˜λœ 응닡 μƒνƒœ μ½”λ“œ 및 이유 ꡬ문(Reason Phrases)

STATUS CODE REASON PHRASE
100 Continue
101 Switching protocols
102 Processing
200 OK
201 Created
202 Accepted
204 No content
205 Reset content
206 Partial content
207 Multi-status
301 Moved permanently
302 Moved temporarily
304 Not modified
305 Use proxy services
306 Switch proxy
307 Temporary redirect
400 Bad request
401 Unauthorized
403 Forbidden
404 Not found
406 Not accepted
407 Proxy authorization required
408 Request timeout
409 Conflict
410 Gone (service)
415 Unsupported media type
500 Internal server error
501 Not implemented
502 Bad gateway
503 Service unavailable
504 Gateway timeout
505 HTTP version not supported
507 Insufficient storage

 

 κ°œμ„  사항 쀑 μΌλΆ€λŠ” 청크(chunked) λ‹¨μœ„μ˜ 데이터 전솑, TCP μ˜€λ²„ν—€λ“œλ₯Ό μ€„μ΄λŠ” 지속 μ—°κ²°(persistent connections) 지원, λ¬Έμ„œμ˜ μΌλΆ€λ§Œ μš”μ²­ν•  수 μžˆλ„λ‘ ν•˜λŠ” λ°”μ΄νŠΈ λ²”μœ„(byte ranges), 가상 호슀트λ₯Ό ν—ˆμš©ν•˜λŠ” 호슀트 이름 식별, μ—¬λŸ¬ μ–Έμ–΄λ₯Ό ν—ˆμš©ν•˜λŠ” μ½˜ν…μΈ  ν˜‘μƒ(content negotiation), 그리고 ν”„λ‘μ‹œ 지원이 ν¬ν•¨λ©λ‹ˆλ‹€. HTTP 1.1은 이전 λ²„μ „μ˜ ν”„λ‘œν† μ½œλ³΄λ‹€ νš¨μœ¨μ μ΄μ§€λ§Œ, 그만큼 더 λ³΅μž‘ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, HTTP μš”μ²­ λ©”μ„œλ“œμ˜ μˆ˜κ°€ ν˜„μž¬ 8개둜 μ¦κ°€ν–ˆμŠ΅λ‹ˆλ‹€. ν‘œ 2.7은 HTTP 1.1μ—μ„œ μ§€μ›ν•˜λŠ” ν™•μž₯된 μš”μ²­ λ©”μ„œλ“œ μ„ΈνŠΈμ™€ 각 λ©”μ„œλ“œμ— λŒ€ν•œ κ°„λž΅ν•œ μ„€λͺ…을 μ œκ³΅ν•©λ‹ˆλ‹€.

 

ν‘œ 2.7: HTTP 1.1 μš”μ²­ λ©”μ„œλ“œ

METHOD μ„€λͺ…
GET μ„œλ²„μ— νŠΉμ • μžμ›μ„ μš”μ²­ν•˜λ©°, μ½˜ν…μΈ λ₯Ό λ°˜ν™˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
HEAD GETκ³Ό μœ μ‚¬ν•˜λ‚˜, HTTP ν—€λ”λ§Œ λ°˜ν™˜ν•˜κ³  μ½˜ν…μΈ λŠ” λ°˜ν™˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
POST μ„œλ²„μ— μ €μž₯된 정보λ₯Ό μˆ˜μ •ν•˜λ„λ‘ μš”μ²­ν•©λ‹ˆλ‹€.
PUT μ„œλ²„μ— μžμ›μ„ μƒμ„±ν•˜κ±°λ‚˜ κΈ°μ‘΄ μžμ›μ„ λŒ€μ²΄ν•˜λ„λ‘ μš”μ²­ν•©λ‹ˆλ‹€.
DELETE μ„œλ²„μ—μ„œ μžμ›μ„ μ‚­μ œν•˜λ„λ‘ μš”μ²­ν•©λ‹ˆλ‹€.
CONNECT SSL(λ³΄μ•ˆ μ†ŒμΌ“ 계측) 연결을 톡해 HTTP 연결을 터널링할 수 μžˆλ„λ‘ μ‚¬μš©λ©λ‹ˆλ‹€.
OPTIONS νŠΉμ • μžμ›μ— λŒ€ν•΄ μ‚¬μš© κ°€λŠ₯ν•œ μš”μ²­ λ©”μ„œλ“œ λͺ©λ‘μ„ μ„œλ²„μ— μš”μ²­ν•©λ‹ˆλ‹€.
TRACE μš”μ²­ 헀더λ₯Ό μ„œλ²„κ°€ μˆ˜μ‹ ν•œ κ·ΈλŒ€λ‘œ 되돌렀 보내도둝 μš”μ²­ν•©λ‹ˆλ‹€.

 

2.2.3.4 State Maintenance μ•žμ„œ λ…Όμ˜ν–ˆλ“―μ΄, HTTP ν”„λ‘œν† μ½œμ€ μƒνƒœλ₯Ό μœ μ§€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 즉, HTTP μ„Έμ…˜μ€ λΈŒλΌμš°μ €μ˜ μš”μ²­μ—μ„œ μ„œλ²„μ˜ μ‘λ‹΅κΉŒμ§€ μ§€μ†λ˜λ©°, μ΄ν›„μ˜ μš”μ²­μ€ 이전 μš”μ²­κ³Ό λ…λ¦½μ μž…λ‹ˆλ‹€. HTTP의 μ΄λŸ¬ν•œ μƒνƒœκ°€ μ—†λŠ”(stateless) νŠΉμ„±μ€ μ‚¬μš©μžκ°€ λΈŒλΌμš°μ €λ₯Ό 톡해 정보가 μœ μ§€λ˜μ–΄μ•Ό ν•˜λŠ” μž‘μ—…, 예λ₯Ό λ“€μ–΄ μ „μž μƒκ±°λž˜ μ›Ήμ‚¬μ΄νŠΈμ—μ„œ μž₯λ°”κ΅¬λ‹ˆμ— ν•­λͺ©μ„ μΆ”κ°€ν•˜λŠ” 경우 문제λ₯Ό λ°œμƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

HTTP의 μƒνƒœκ°€ μ—†λŠ” νŠΉμ„±μ„ ν•΄κ²°ν•˜λŠ” λ°©λ²•μ—λŠ” 두 가지가 μžˆμŠ΅λ‹ˆλ‹€. HTTP μ„Έμ…˜μ˜ μƒνƒœκ°€ μ—†λŠ” νŠΉμ„±μ„ κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ κ°€μž₯ 일반적으둜 μ‚¬μš©λ˜λŠ” 방법은 μΏ ν‚€(Cookies)λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 두 번째 방법은 μ„œλ²„μ—μ„œ μ„€μ •λœ 값을 가진 HTML 폼의 μˆ¨κ²¨μ§„(hidden) ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

 

2.2.3.4.1 Cookies μΏ ν‚€λŠ” μ‹λ³„μžλ‘œ μž‘λ™ν•˜λŠ” 짧은 νŒŒμΌμž…λ‹ˆλ‹€. μΏ ν‚€λŠ” μ›Ή μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό 톡해 μ‚¬μ΄νŠΈμ— λ°©λ¬Έν•  λ•Œμ˜ μ„€μ •μ΄λ‚˜ μ‚¬μš©μžκ°€ μ„ νƒν•œ ν•­λͺ©κ³Ό 같은 ν΄λΌμ΄μ–ΈνŠΈμ— λŒ€ν•œ 정보λ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ λ©”μ»€λ‹ˆμ¦˜μœΌλ‘œ μƒμ„±λ©λ‹ˆλ‹€.

 

 μΏ ν‚€λŠ” ν΄λΌμ΄μ–ΈνŠΈμ— 미리 μ •μ˜λœ κΈ°κ°„ λ™μ•ˆ μ €μž₯λ©λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— μš”μ²­μ„ 전솑할 λ•Œλ§ˆλ‹€ μ„œλ²„μ—μ„œ λ°œν–‰λœ μΏ ν‚€λŠ” ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ— ν¬ν•¨λ˜λ©°, μ„œλ²„λŠ” 이λ₯Ό 톡해 ν΄λΌμ΄μ–ΈνŠΈμ˜ μƒνƒœλ₯Ό 볡원할 수 μžˆμŠ΅λ‹ˆλ‹€. λ³΄μ•ˆ κ΄€μ μ—μ„œ μΏ ν‚€κ°€ ν΄λΌμ΄μ–ΈνŠΈμ— μ €μž₯되면, ν•΄λ‹Ή μΏ ν‚€λŠ” μΏ ν‚€λ₯Ό μƒμ„±ν•œ μ›Ήμ‚¬μ΄νŠΈλ‘œλ§Œ 전솑될 수 μžˆμŠ΅λ‹ˆλ‹€.

κ·Έλ¦Ό 2.5  Mac OS Chrome의  Tools  λ©”뉴λ₯Ό 톡해 컴퓨터에 μ €μž₯된 μΏ ν‚€λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

 Microsoft의 Internet Explorerλ₯Ό μ‚¬μš©ν•˜λŠ” 경우, λΈŒλΌμš°μ €μ˜ μΏ ν‚€λ₯Ό ν™•μΈν•˜λ €λ©΄ 도ꡬ > 인터넷 μ˜΅μ…˜μ„ μ„ νƒν•˜κ³ , μž„μ‹œ 인터넷 파일(Temporary Internet Files) μ˜μ—­μ—μ„œ μ„€μ •(Settings) λ²„νŠΌμ„ μ„ νƒν•œ ν›„, λ‚˜νƒ€λ‚˜λŠ” μ„€μ •(Settings) μ°½μ—μ„œ 파일 보기(View Files) λ²„νŠΌμ„ μ„ νƒν•˜μ‹­μ‹œμ˜€. κ·Έλ¦Ό 2.5λŠ” ν‘œμ‹œλ˜λŠ” μ„Έ 가지 λŒ€ν™” μƒμžλ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€. μ™Όμͺ½ 상단에 μžˆλŠ” 초기 μƒμžλŠ” 도ꡬ λ©”λ‰΄μ—μ„œ 인터넷 μ˜΅μ…˜μ„ μ„ νƒν–ˆμ„ λ•Œ ν‘œμ‹œλ©λ‹ˆλ‹€. μ„€μ •(Settings) λ²„νŠΌμ„ μ„ νƒν•˜λ©΄ μž„μ‹œ 인터넷 파일 및 기둝 μ„€μ •(Temporary Internet Files and History Settings)으둜 λ ˆμ΄λΈ”μ΄ μ§€μ •λœ λŒ€ν™” μƒμžκ°€ λ‚˜νƒ€λ‚©λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ 파일 보기(View Files) λ²„νŠΌμ„ μ„ νƒν•˜λ©΄, μ•žλ©΄μ˜ λŒ€ν™” μƒμžκ°€ λ‚˜νƒ€λ‚˜λ©°, μ €μžμ˜ 컴퓨터에 μ €μž₯된 일뢀 μΏ ν‚€κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€. λŒ€ν™” μƒμžμ˜ μ™Όμͺ½ λΆ€λΆ„μ—λŠ” 쿠킀에 λŒ€ν•œ μ„€λͺ…이 ν‘œμ‹œλ˜λ©°, 인터넷 μ£Όμ†Œ, 만료 λ‚ μ§œ, λ§ˆμ§€λ§‰μœΌλ‘œ ν™•μΈλœ μ‹œκ°„, μ ‘κ·Ό 및 μˆ˜μ •λœ μ‹œκ°„μ΄ ν¬ν•¨λ©λ‹ˆλ‹€.

 

2.2.3.4.1.1 Types of Cookies
μΏ ν‚€μ—λŠ” 영ꡬ μΏ ν‚€(persistent cookie)와 μž„μ‹œ μΏ ν‚€(temporary cookie)의 두 가지 μœ ν˜•μ΄ μžˆμŠ΅λ‹ˆλ‹€. 영ꡬ μΏ ν‚€λŠ” 컴퓨터에 파일둜 μ €μž₯되며, λΈŒλΌμš°μ €λ₯Ό 닫아도 남아 μžˆλŠ” μΏ ν‚€μž…λ‹ˆλ‹€. 영ꡬ μΏ ν‚€λŠ” ν•΄λ‹Ή μ‚¬μ΄νŠΈλ₯Ό λ‹€μ‹œ λ°©λ¬Έν•  λ•Œ μΏ ν‚€λ₯Ό μƒμ„±ν•œ μ›Ήμ‚¬μ΄νŠΈλ§Œ 읽을 수 μžˆμŠ΅λ‹ˆλ‹€. 이에 λ°˜ν•΄, μž„μ‹œ μΏ ν‚€λŠ” ν˜„μž¬ λΈŒλΌμš°μ§• μ„Έμ…˜ λ™μ•ˆλ§Œ μ €μž₯되며, λΈŒλΌμš°μ €λ₯Ό λ‹«μœΌλ©΄ μ‚­μ œλ©λ‹ˆλ‹€. μ‚¬μš©μžλŠ” λΈŒλΌμš°μ € 섀정을 톡해 λͺ¨λ“  μΏ ν‚€λ₯Ό μžλ™μœΌλ‘œ ν—ˆμš©ν•˜κ±°λ‚˜ μ°¨λ‹¨ν•˜λ„λ‘ 선택할 수 있으며, νŠΉμ • 쿠킀에 λŒ€ν•΄ ν—ˆμš© λ˜λŠ” 차단 μ—¬λΆ€λ₯Ό λ¬»λŠ” λ©”μ‹œμ§€λ₯Ό 받도둝 μ„€μ •ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μΏ ν‚€λ₯Ό 차단할 경우, μ‡Όν•‘ μΉ΄νŠΈμ— ν•­λͺ©μ„ μΆ”κ°€ν•˜λŠ” λ“±μ˜ νŠΉμ • ν™œλ™μ„ μˆ˜ν–‰ν•˜κΈ° μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

2.2.3.4.2 Hidden Fields HTTP μ„Έμ…˜μ˜ μƒνƒœκ°€ μ—†λŠ” νŠΉμ„±μ„ κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•  수 μžˆλŠ” 두 번째 방법은 HTML 폼의 μˆ¨κ²¨μ§„ ν•„λ“œ(hidden fields)λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μˆ¨κ²¨μ§„ ν•„λ“œλŠ” 이름 κ·ΈλŒ€λ‘œ μ‚¬μš©μžμ˜ μ‹œμ•Όμ— 보이지 μ•ŠμŠ΅λ‹ˆλ‹€. μ„œλ²„λŠ” 폼의 μˆ¨κ²¨μ§„ ν•„λ“œμ— 값을 μ„€μ •ν•  수 있으며, 이 값은 ν΄λΌμ΄μ–ΈνŠΈκ°€ 폼을 μ œμΆœν•  λ•Œ μ„œλ²„λ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€. μˆ¨κ²¨μ§„ ν•„λ“œμ— μƒνƒœ 정보λ₯Ό λ°°μΉ˜ν•¨μœΌλ‘œμ¨, μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μƒνƒœλ₯Ό 볡원할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

2.2.4 Browser Programs ν˜„λŒ€μ˜ λΈŒλΌμš°μ €λŠ” λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨(ν”ŒλŸ¬κ·ΈμΈ)을 μ œμ–΄ν•  수 μžˆλŠ” μ •κ΅ν•œ μ†Œν˜• 운영 체제둜 간주될 수 μžˆμŠ΅λ‹ˆλ‹€. λΈŒλΌμš°μ €λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ(JavaScript) 및 VB슀크립트(VBScript)λ₯Ό μ‹€ν–‰ν•˜λŠ” 인터프리터λ₯Ό μ‹€ν–‰ν•  수 있으며, 이 두 μŠ€ν¬λ¦½νŠΈλŠ” 폼의 ν•„λ“œ μœ νš¨μ„± 검사λ₯Ό μœ„ν•΄ 일반적으둜 μ‚¬μš©λ©λ‹ˆλ‹€. λΈŒλΌμš°μ € λ‚΄μ—μ„œ μ‹€ν–‰ν•  수 μžˆλŠ” 또 λ‹€λ₯Έ μΈν„°ν”„λ¦¬ν„°λŠ” μžλ°”(Java)μž…λ‹ˆλ‹€. μžλ°”λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈλ‚˜ VBμŠ€ν¬λ¦½νŠΈλ³΄λ‹€ 더 λ§Žμ€ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” κ³ κΈ‰ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μž…λ‹ˆλ‹€.

 

 Windows ν™˜κ²½μ—μ„œλ§Œ κ³ μœ ν•˜κ²Œ μ‚¬μš©λ˜λŠ” ν”„λ‘œκ·Έλž¨ μœ ν˜• 쀑 ν•˜λ‚˜λŠ” ActiveX μ»¨νŠΈλ‘€μž…λ‹ˆλ‹€. ActiveX μ»¨νŠΈλ‘€μ€ 동적 링크 라이브러리(DLL)λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 컴퓨터 μ„Έκ³„μ—μ„œ DLL은 μ—¬λŸ¬ 개의 μž‘μ€ ν”„λ‘œκ·Έλž¨ λͺ¨μŒμ΄λ©°, μ΄λŸ¬ν•œ ν”„λ‘œκ·Έλž¨μ€ μ»΄ν“¨ν„°μ—μ„œ μ‹€ν–‰ 쀑인 더 큰 ν”„λ‘œκ·Έλž¨μ΄ ν•„μš”ν•  λ•Œ 호좜될 수 μžˆμŠ΅λ‹ˆλ‹€. 일뢀 DLL은 ν”„λ¦°ν„°λ‚˜ μŠ€μΊλ„ˆμ™€ 같은 νŠΉμ • ν•˜λ“œμ›¨μ–΄μ™€μ˜ 톡신을 κ°€λŠ₯ν•˜κ²Œ ν•˜λ©°, 이λ₯Ό λ””λ°”μ΄μŠ€ λ“œλΌμ΄λ²„(device drivers) 라고 λΆ€λ¦…λ‹ˆλ‹€.

 

 DLL νŒŒμΌμ€ μ£Ό ν”„λ‘œκ·Έλž¨κ³Ό ν•¨κ»˜ 랜덀 μ•‘μ„ΈμŠ€ λ©”λͺ¨λ¦¬(RAM)에 λ‘œλ“œλ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, RAM 곡간을 μ ˆμ•½ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  DLL νŒŒμΌμ€ 파일 이름 ν™•μž₯자둜 .dll을 가지며, ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑 ν•΄λ‹Ή ν”„λ‘œκ·Έλž¨κ³Ό λ™μ μœΌλ‘œ μ—°κ²°λ©λ‹ˆλ‹€. DLL 파일이 ν•„μš”ν•œ κ²½μš°μ—λ§Œ RAM에 λ‘œλ“œλ˜μ–΄ μ‹€ν–‰λ©λ‹ˆλ‹€.

 

2.2.4.1 Helpers ν”ŒλŸ¬κ·ΈμΈ, ActiveX, 그리고 μžλ°” μ• ν”Œλ¦Ώμ„ 톡틀어 헬퍼(Helpers) 라고 ν•©λ‹ˆλ‹€. 이 λͺ…칭은 헬퍼듀이 ν΄λΌμ΄μ–ΈνŠΈ λΈŒλΌμš°μ €μ—μ„œ λΈŒλΌμš°μ € μžμ²΄λ‘œλŠ” μ²˜λ¦¬ν•  수 μ—†λŠ” λ¬Έμ„œλ₯Ό μ²˜λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— λΆ™μ—¬μ‘ŒμŠ΅λ‹ˆλ‹€. κ·Έλ¦Ό 2.6은 λΈŒλΌμš°μ € ꡬ성 μš”μ†Œμ— λŒ€ν•œ 일반적인 κ°œμš”λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. HTML 디코딩은 λͺ¨λ“  λΈŒλΌμš°μ €μ— λ‚΄μž₯λ˜μ–΄ μžˆμ§€λ§Œ, λ‹€λ₯Έ ꡬ성 μš”μ†Œλ“€μ€ 선택 μ‚¬ν•­μž…λ‹ˆλ‹€.

 

λ°˜μ‘ν˜•
λ‹€ν–ˆλ‹€