Section 01. 웹 시스템

01. 문서 표준과 마크업 언어(Markup Language)

  • 하이퍼 텍스트(hyper text): 특정 위치에 링크(link)를 걸어 다른 문서와 연결할 수 있는 기능
    • 인터넷 웹 브라우저의 시초, 모자이크에서 제공한 기능
  • HTML: 웹 페이지를 자유롭게 구성할 수 있도록 고안된 마크업 언어
    • HTML은 SGML과 유사하게 태그를 사용하여 웹 페이지를 만들 수 있고, 특정 응용 프로그램의 영향을 받지 않는다.
    • SGML(Standard Generalized Markup Language): 특정 응용 프로그램에서 독립적인 전 세계 문서 표준
      • bold, itelic과 같은 작업은 문서 편집기(MS 워드, 한글)같은 특정 응용 프로그램에게 국한될 경우 다른 프로그램과의 호환성 문제가 있어 고안되었다.

      • 가장 중요한 요소, 글자의 속성을 나타내는 태그(tag)
        - SGML에서는 속성을 표현하려는 문자의 앞 뒤에 태그를 붙인다
        <ITALICS> HI </ITALICS>

        ⇒ 태그를 붙여 문서를 표현한 방식을 마크업 언어(markup language)라고 한다.

    • HTML을 배운다 → HTML 문서의 속성을 정의하는 태그들과 사용 방법을 배운다
  • 웹 시스템은 웹 브라우저(클라이언트)가 HTTP를 사용해 서버(HTTPD)에서 접속하면, 서버는 HTML로 이루어진 문서를 클라이언트에게 전송한다.
  • W3C는 웹 표준과 가이드라인을 개발하는 단체

02. HTML 살펴보기

기본적인 형태

HTML 주요 태그

HTML 기본 태그 사용 코드

폰트와 테이블 관련 태그

테이블 관련 태그 사용 코드

03. CGI

HTML은 내용을 바꿀 때마다 수정하거나 새로 만들어야 한다. 동적으로 변하는 데이터를 웹 페이지에 삽입하려면 다른 프로그램의 도움을 받아야 한다.

CGI(Common Gateway Interface): 웹 데몬이 응용 프로그램에 질문하고, 결과를 HTML에 맞게 변형시켜주는 역할

  • 웹 데몬과 다른 응용 프로그램을 연결해 주는 인터페이스 역할
  • 웹 데몬은 CGI를 이용해 응용 프로그램이 요청하는 형식에 맞게 질문한다.

웹 시스템이 발전하면서 DB와 같은 응용 프로그램과의 연결도 많아지고, 질문도 복잡해졌다. 웹 데몬 개발자가 기존의 스크립트 언어를 대신할 강력한 스크립트 언어를 제공한다.

  • 대표적인 웹 데몬은 아파치(Apach) → 스크립트 언어 PHP 제공
  • MS의 웹 데몬은 IIS(Internet Information Service) → 스크립트 언어 ASP 제공

JSP(Java Service Pages)는 아파치, IIS에 관계없이 사용할 수 있다. (데몬의 독립적인 스크립트)

04. XML(eXtensible Markup Language)

정형 데이터(structed data): 정해진 구조에 따라 저장된 데이터

  • 미리 정해진 구조를 스키마(schema)라고 한다
  • 스마트폰 전화번호부

비정형 데이터(unstructed data): 정해진 구조가 없는 데이터

  • 음악, 사진, 영상

반정형 데이터(semi-structured data): 정형과 비정형의 중간적인 형태로 정형 데이터처럼 구조가 정해져 있으나 비정형 데이터처럼 자유롭고 유연하다.

  • JSON, XML

XML: HTML의 한계를 극복하고 사용자 정의 메타 데이터를 사용할 수 있는 다목적 마크업 언어

  • 사용자 정의 태그를 사용할 수 있다.
  • 메타 데이터: 데이터의 의미나 속성을 규정

05. HTML5

HTML5: 비표준 기술을 사용하지 않고도 다양한 프로그램을 개발할 수 있도록 만든 표준기술

  • 다른 프로그램을 설치하지 않고도 멀티미디어를 웹 브라우저에서 직접 볼 수 있다.
  • 그래픽 카드가 지원하는 하드웨어 가속을 받아 2차원, 3차원 그래픽 모두 지원
  • 소켓에 접근해 클라이언트와 서버 사이의 양방향 통신 지원
  • 다양한 하드웨어 장치 접근 가능

스타일 시트인 CSS3을 지원해 성능을 극대화 하면서도 강력한 웹 플랫폼

06. 웹 시스템 구조 이해하기

HTTP는 웹 시스템에서 HTML 문서를 주고받을 때 사용하는 프로토콜이다.

  • 주로 TCP 사용, 포트는 80
  • HTTP/0.9에서 시작 → HTTP/1.0, HTTP/1.1(대중적), HTTP/1.2가 제안

  • 요청 메소드(request method): 클라이언트가 서버에게 요청을 할 때 어떤 서비스를 원하는지 명시
    • 클라이언트는 기본적으로 GET 요청 사용

      • GET: 웹 페이지를 보내달라는 요청
    • 서버는 클라이언트의 요청에 따라 적당한 데이터를 보낸다. 만약 클라이언트의 요청이 HEAD라면 본문은 빼고 헤더만 보낸다.

  • 응답코드: 요청된 서비스가 어떻게 처리되었는지 알려주는 코드
  • 프록시(proxy) 서버: 클라이언트를 대신해 서버에 접속하는 것
    • 프록시는 서버에 접속하여 데이터를 가져올 필요가 없어 전송시간을 절약할 수 있다.

    • 웹 브라우저에서 프록시를 지정하면 웹 클라이언트에서 요청되는 url이 해당 서버에 연결되어 요청되는 것이 아니라 프록시 서버에 요청

    • 프록시 요청을 받은 프록시 서버는 url의 해당 서버와 함께 접속해 요청을 보내고 클라이언트 대신 응답을 받아 이를 클라이언트에 넘겨준다.

    • 원래 접속속도를 빠르게 하고 네트워크 트래픽을 줄이는 용도로 개발되었으나, 전달받은 콘텐츠에 악성 코드가 있는지 파악하거나, 중요한 데이터가 외부로 유출되는 것을 차단하기 위해, 혹은 자신의 IP 주소의 노출을 막거나 다른 사람이 IP 추적하는 것을 차단하기 위해 사용되기도 한다.

  • 웹 캐시: 웹 시스템이 사용하는 캐시
    • 웹 브라우저는 로고나 아이콘과 같은 그림 파일을 웹 캐시에 저장한다.

      → 접근 속도를 높인다.

  • 쿠키(cookie): 서버가 필요에 의해 클라이언트에게 남겨 놓은 작은 데이터
    • 클라이언트가 서버에 작업했던 내용 기록 후, 해당 서버를 재방문할 경우 새로운 서비스를 위해 남겨 놓은 것
    • 검색 기록 서비스
    • 구글은 사용자가 검색한 쿠키의 내용을 바탕으로 광고 송출

Section 02. DNS

01. DNS 계층 구조

DHCP를 통해 IP 주소 및 게이트웨이. 기본 DNS 주소, 보조 DNS 주소가 자동으로 할당된다.

  • 보조 DNS: 기본 DNS에 문제가 생겼을 경우 작동
  • 주요 업체의 DNS 주소

DNS는 계층 구조로 이루어져 있다.

  • 클라이언트가 url을 사용해 인터넷을 하는 경우, DNS를 통해 url을 IP 주소로 바꾼 후 인터넷 사용 가능
  • 각 DNS 서버가 모든 url의 IP 주소를 알기에는 한계가 있다. → 자신이 속한 지역의 local DNS 서버가 원하는 IP 주소를 가지고 있지 않으면 루트 DNS 서버에게 물어봐 IP 주소를 알아본다.

url의 맨 오른쪽의 도메인이 최상위 도메인이다.

  • 보통 kr(한국), fr(프랑스), jp(일본)과 같은 국가
  • 국가가 없는 일반 주소는 com이 최상위 도메인
    • 혹은 net(네트워크 관련 기관), biz(회사), info(정보 서비스 제공 기관), edu(교육기관), org(비영리 기관), gov(국가기관) 등…
  • 루트 DNS부터 차례대로 내려가면서 주소를 알아낸다
    • 서버가 마비되는 문제를 방지하기 위해 현재 1000개 이상의 루트 DNS가 존재한다.

02. DNS 작동 방식

  1. 지역 DNS가 www.samsung.com의 IP 주소를 루트 DNS 서버에게 물어 봄.

  2. 루트 DNS 서버는 www.samsung.com의 IP 주소를 모른다고 응답. 대신 최상위 도메인을 관리하는 com DNS 서버의 IP 주소를 알려줌.

  3. 지역 DNS 서버는 com DNS 서버에게 www.samsung.com 주소를 물어봄.

    com DNS 서버는 samsung DNS 서버의 IP 주소를 알려줌.

  4. 지역 DNS 서버는 samsung DNS 서버에게 www.samsung.com 주소를 물어봄.
    samsung DNS 서버는 www DNS 서버의 IP 주소를 알려줌.

  5. 지역 DNS 서버는 www DNS 서버에게 www.samsung.com 주소를 물어봄.
    www DNS 서버는 IP 주소를 알려줌.

  • DNS가 IP 주소를 찾는 과정은 url의 최상위 도메인부터 시작해 해당 DNS를 재귀적으로 찾아간다. 즉, IP 주소를 찾을 때까지 반복적으로 작업이 진행된다.

  • DNS 캐시: url을 IP 주소로 바꾸는 작업의 시간을 절약하고 지역 DNS 서버의 부담을 줄이기 위해 한 번 사용한 IP주소는 컴퓨터에 보관한다.

    • cmd → ipconfig/displaydns → 캐시된 DNS를 볼 수 있다.

Section 03. 이메일과 FTP

이메일: 인터넷을 이용하여 메시지를 주고받을 때 사용하는 시스템

  • ARPANET이 만들어진 이후 가장 많은 사람들이 사용하는 응용 프로그램
  • 사용자 ID @ 시스템 이름
  • SMTP 사용
    • 포트 번호 25번
  • 이메일의 헤더 필드 종류
    ![](https://velog.velcdn.com/images/ssssyeon/post/3a0cc15c-4702-4d13-a61b-57129bf9c750/image.png)

SMTP는 문자만 전송하도록 규정된 프로토콜이다.

  • 정확하게는 8bit ASCII 코드 중 문자영역의 7bit 코드만 전송 가능 → 유니코드를 사용하는 나라는 사용 X → 이러한 문제를 해결한 것이 MIME

MIME(Multipurpose Internet Mail Extensions): 이메일이나 웹 시스템에서 다양한 종류의 파일을 문자 형태로 변환하여 전송해줄 수 있는 기능

  • 보내는 쪽 MIME은 그림, 동영상, 문서파일과 같이 바이너리로 이루어진 파일을 인코딩해 ASCII 문자로 바꾸고, 받는 쪽 MIME는 받은 문서파일을 원래 파일 형태로 환원

02. FTP

FTP(File Transfer Protocol): 파일 전송 프로토콜, 네트워크에서 컴퓨터들이 파일을 교환하기 위해 만들어진 프로토콜

  • 익명 FTP: 로그인 없이도 사용 가능
  • 제어용으로 21번 포트 사용, 데이터 전송에는 20번 포트 사용
    • 데이터 전송 중 제어를 유지하기 위함
profile
가보자고! 🔥

0개의 댓글