본문 바로가기

항해99

[Computer Science] 9장 웹 브라우저

728x90

Markup Language

  • 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지
  • 태그
    • 원래 텍스트와는 별도로 원고의 교정부호 및 주석을 표현하기 위한 것이었으나 용도가 점차 확장되어 문서의 구조를 표현하는 역할을 하게 됨
    • 문서의 골격에 해당하는 부분을 작성
  • 일반적으로는 데이터를 기술하는 정도로만 사용되기 때문에 프로그래밍 언어와는 구분됨



마크업 언어 구분

  • 프리젠테이션 마크업(Presentational markup)
    • 전통적인 워드 프로세싱 시스템에서 사용되는 마크업의 종류
    • WYSIWYG(“what you see it what you get”) 효과를 생성하는 문서 텍스트 내에 포함된 바이너리 코드
    • 사용자들이 아래 절차적/기술적 마크업을 사용하면, 사용자에게 “현재(WYSIWYG)” 상태로 변환한다.
  • 절차적 마크업(Procedural markup)
    • 잘 알려진 예) troff, TeX, PostScript
    • 텍스트에 포함되며, 텍스트는 프로그램을 통해 텍스트를 처리하기 위한 지침을 제공
    • 프로세서는 마주친 지침에 따라 처음부터 텍스트를 통해 실행 될 것으로 예상
  • 기술적 마크업(Descriptive markup)
    • 잘 알려진 예) LateX, HTML, XML
    • 문서의 일부에 라벨을 붙이는 데 사용
    • 문서의 고유한 구조를 어떤 특정한 처리나 변경으로부터 분리
    • 예) HTML의 태그
    • 시각적으로가 아닌 개념적으로 자료를 설명하는 방식으로 쓰도록 권장
  • 경량화 마크업(lightweight markup)
    • 예) 위키피디아에서 사용하는 위키 마크업
    • 최근 웹 브라우저를 통해 형식화된 텍스트를 작성할 수 있도록 개발된 작고 표준화되지 않은 다수의 마크업

· SGML

· 문서용 마크업 언어를 정의하기 위한 메타 언어

   - 복잡하고 다양한 자료를 텍스트 기반 자료 구조로 표현할 수 있는 매우 강력한 언어

· JSP, HTML, XML 등에서 사용하는 <!-- --> 주석의 유래

· IBM에서 1960년대에 개발한 GML(Generalized Markup Language)의 후속으로, 1986년 표준으로 확정(ISO8879)

· 정부나 항공우주 기업의 대규모 계획 사업 과정에서 기계 판독형(machine-readable) 문서를 공유할 목적으로,

몇 십 년 이상의 기간 동안 판독 가능하도록 설계

· 인쇄와 출판 산업에 광범위하게 사용되었지만, 너무 복잡하여 소규모 범용 목적으로 사용하는데는 걸림될이 됨(웹 브라우저 등에 적용이 어려움)

· 파일 확장자: .sgml

· XMLSGML에서 파생된 언어

   - XMLSGML의 특수한 부분집합으로 SGML에 비해 해석과 처리를 단순화하기 위해 설계함

   - XML은 범용 목적의 응용을 위해 SGML을 단순화하려는 시도임

   - 구조적인 자료를 가지고 있는 문서를 위한 마크업 언어

   - 구조적인 자료: 내용과 더불어 각각의 내용이 가지는 의미와 역할이 정해진 규칙에 따라 표현되어 있는 자료

   - XML은 XHTML, RSS, XMl -RPC, SOAP 등 여러 방면에서 응용 중

 

· HTMLSGML과 별도로 설계되었지만, 2.0 버전에서 SGML 기반으로 재정의 됨 

   - 웹 브라우저에서 내용이 어떻게 보여질 것인가를 지정하지 위한 태그

   - HTML에서 사용 가능한 태그는 고정 집합으로, 사용자가 자신의 태그를 추가할 수 없음

   - XML은 고정된 태그 집합이 아니며, 마크업 언어를 정의하기 위한 메타 언어임

 

 

 

균일 자원 위치 지정자(URL, Uniform Resource Locator)

URL의 구조

 

 

1. Protocol(Scheme)

 

  • http(Hyper Text Transfer Protocol)는 프로토콜(규약)이다.
    URL의 첫 파트이자 웹에서 서버와 클라이언트간에 어떤 방법으로 자원을 접근할지 알려준다.
  • 요즘은 https를 기본 프로토콜로 쓰는데, http에 보안이 강화된 버전이다.
  • 브라우저에서 가장 많이 사용되는 https/http외에도 mailto: (이메일 주소를 지정하는 프로토콜), ftp: (파일을 주고받는 프로토콜) 등 다양한 프로토콜이 존재한다.

 

2. Domain Name

 

  • 도메인 네임은 URL에서 웹서버의 위치를 지정한다.
  • 직접 IP 주소(ex. 127.0.0.1)를 사용하는 것도 가능하다.

 

3. Port

 

  • 웹서버에서 자원을 접근하기 위해 사용하는 관문.
  • 표준 HTTP 포트는 80번 HTTPS는 443이다. 표준 포트를 사용한다면 포트번호는 보통 생략한다.

 

4. Path

 

  • 웹서버에서 자원에 대한 경로
  • 초기의 웹에서는 웹서버상에서 물리적 파일 위치를 나타넸지만, 지금은 실제 물리적 경로를 나타내지 않고, 웹 서버에서 추상화하여 보여준다.
  • 루트 자원을 나타내려면 “/”을 사용한다.

 

5. Query Parameters

 

  • & 기호로 구분된 키/값으로 짝을 이룬 리스트
  • 키와 값은 =문자로 구분한다.

 

6. Fragment identifier(Anchor)

 

  • 세부항목에 대한 책갈피 역할
  • ex. 특정 스크롤 위치로 이동(목차 등)
  • 요청이 서버에 보내지지 않는다.