Post

[Book - 그림으로 배우는 Http & Network Basic] 1. 웹과 네트워크의 기본

웹은 HTTP로 나타낸다.


웹 브라우저는 웹 브라우저 주소 입력란에 지정된 URL에 의지해서 웹 서버로부터 리소스라고 불리는 파일 등의 정보를 얻고 있다.

클라이언트에서 서버까지 일련의 흐름을 결정하고 있는 것은 웹에서 HTTP(HyperText Transfer Protocol)이라 불리는 프로토콜이다. (프로토콜 = “약속”)

HTTP는 이렇게 태어났고 성장했다.


  • WWW(World Wide Web)을 구성하는 기술

    문서 기술 언어 : SGML을 베이스로 한 HTML(HyperText Markup Language)

    문서 전송 프로토콜 : HTTP

    문서의 주소를 지정하는 방법 : URL(Uniform Resource Locator)

네트워크의 기본은 TCP/IP


인터넷과 관련된 프로토콜들을 모은 것을 TCP/IP 라고 부른다.

IP 프로토콜을 사용한 통신에서 사용되고 있는 프로토콜을 총칭해서 TCP/IP라는 이름이 사용되고 있다.

  • TCP/IP은 4계층으로 나뉘어 있다.

    • ‘애플리케이션 계층’

      유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정한다.

      ex) FTP, DNS, HTTP 등

    • ‘트랜스포트 계층’

      애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공한다.

      ex) TCP, UDP

    • ‘네트워크 계층’

      네트워크 상에서 패킷의 이동을 다룬다. (패킷 : 전송하는 데이터의 최소 단위)

    • ‘링크 계층’

      네트워크에 접속하는 하드웨어적인 면을 다룬다.

  • TCP/IP 계층화 장점

    사양이 변경된 해당 계층만 바꾸면 된다.

    설계를 편하게 할 수 있다.

  • TCP/IP 통신의 흐름

    TCP/IP 통신의 흐름

    송신측 : 각 계층을 거칠 때 반드시 헤더로 불려지는 해당 계층마다 필요한 정보를 추가

    수신측 : 각 계층을 거칠 때마다 반드시 해당 계층에 사용한 헤더를 삭제

    (위 그림처럼 정보를 감싸는 것을 캡슐화라고 부른다.)

HTTP와 관계가 깊은 프로토콜은 IP/TCP/DNS


  • 배송을 담당하는 IP

    IP의 역할은 개개의 패킷을 상대방에서 전달하는 것이다.

    상대방에게 전달하기까지 필요한 여러 요소 중 IP 주소와 MAC 주소라는 요소가 중요하다.

    IP(Internet Protocol) 주소 : 각 노드에 부여된 주소를 가리킨다.

    MAC(Media Access Control Protocols) 주소 : 각 네트워크 카드에 할당된 고유의 주소이다.

    IP 통신은 ARP를 이용하여 MAC 주소에 의존해서 통신을 한다.

    ARP(Address Resolution Protocol)는 주소를 해결하기 위한 프로토콜 중 하나로, 수신지의 IP 주소를 바탕으로 MAC 주소를 조사할 수 있다.

    ARP

  • 신뢰성을 담당하는 TCP

    TCP(Transfer Control Protocol)

    트랜스포트 층에 해당한다.

    신뢰성 있는 바이트 스트림 서비스를 제공한다. (바이트 스트림 서비스 : 용량이 큰 데이터를 보내기 쉽게 TCP 세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리하는 것을 말한다.)

    즉, TCP는 대용량의 데이터를 보내기 쉽게 작게 분해하여 상대에게 보내고, 정확하게 도착했는지 확인하는 역할을 담당한다.

    쓰리웨이 핸드셰이킹(three way handshaking)

    three way handshaking

    위 과정에서 어디선가 통신이 도중에 끊어지면 TCP는 그와 동시에 같은 수순으로 패킷을 재전송한다.

    TCP는 쓰리웨이 핸드셰이킹 외에도 통신의 신뢰성을 보증하기 위해 다양한 시스템을 갖추고 있다.

이름 해결을 담당하는 DNS


DNS(Domain Name System)는 HTTP와 같이 응용 계층 시스템에서 도메인 이름과 IP 주소 이름 확인을 제공한다.

컴퓨터는 IP 주소와는 별도로 호스트 이름과 도메인 이름을 붙일 수 있다. ex) “www.hackr.jp”

DNS는 도메인명에서 IP 주소를 조사하거나 반대로 IP 주소로부터 도메인명을 조사하는 서비스를 제공하고 있다.

DNS

각각과 HTTP와의 관계


각각과 HTTP와의 관계

URI와 URL


  • URI는 리소스 식별자

    URI는 Uniform Resource Identifiers의 약자이다.

    • Uniform

      통일(Uniformity)된 서식을 결정하는 것이다.

      여러 가지 종류의 리소스 지정 방법을 같은 맥락에서 구별없이 취급할 수 있게 한다.

      새로운 스키마(http:와 ftp 등) 도입을 용이하게 한다.

    • Resource

      ‘식별 가능한 모든 것’이다.

      도큐먼트 파일뿐만 아니라 이미지 등 다른 것과 구별할 수 있는 것은 모두 리소스이다.

      단일한 부분만 아니라 복수의 집합도 리소스로 파악할 수 있다.

    • Identifier

      식별 가능한 것을 참조하는 오브젝트이며 식별자로 불린다.

    즉, URI는 스키마를 나타내는 리소스를 식별하기 위한 식별자이다. (스키마 : 리소스를 얻기 위한 수단에 이름을 붙이는 방법이다.)

URI : 리소스를 식별하기 위해 문자열 전반을 나타낸다.

URL : 리소스의 장소(네트워크 상의 위치)를 나타낸다.

URL은 URI의 서브셋이다.

  • URL 포맷

    URL 포맷

    1. 스키마

      ‘http:’와 ‘https:’ 같은 스키마를 사용하여 리소스를 얻기 위해 사용하는 프로토콜을 지시한다. (대문자와 소문자는 무시되고 마지막에 :와 //가 붙는다.)

    2. 자격정보(크리덴셜) - (옵션)

      서버로부터 리소스를 취득하려면 자격정보(크리덴셜)가 필요하다.

      유저명과 패스워드를 지정할 수 있다.

    3. 서버 주소

      “www.hackr.jp”와 같은 DNS 이름이나, “192.168.1.1”과 같은 IPv4 주소나, “[0:0:0:0:0:0:0:1]”과 같은 IPv6 주소를 대괄호로 묶어서 지정한다.

    4. 서버 포트 - (옵션)

      서버의 접속 대상이 되는 네트워크 포트 번호를 지정한다.

      생략하면 디폴트 포트(80)가 사용된다.

    5. 계층적 파일 패스

      특정 리소스를 식별하기 위해서 서버 상의 파일 패스를 지정한다.

      UNIX 디렉토리 지정 방법과 비슷하다.

    6. 쿼리 문자열 - (옵션)

      파일 패스로 지정된 리소스에 임의의 파라미터를 넘기기 위해 쿼리 문자열을 사용한다.

    7. 프래그멘트 식별자 - (옵션)

      주로 취득한 리소스에서 서브 리소스(도큐먼트 중간에 위치)를 가리키기 위해서 프래그멘트 식별자가 사용된다.

This post is licensed under CC BY 4.0 by the author.