[1장] 웹과 네트워크의 기본

신은지·2021년 9월 11일
0

1.1 웹은 HTTP로 나타낸다

클라이언트는 입력란에 지정된 URL에 의지해서 웹 서버에게 의뢰를 하고, 리소스를 얻는다.
이때 클라이언트~서버까지의 흐름을 HTTP 프로토콜이 결정한다.

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

멀리 떨어져 있는 팀원과 지식을 공용하기 위해 WWW가 고안되었으며, 이후 일련의 시스템 명칭으로 고정되며 발전. HTTP는 초기에 텍스트 전송을 위한 프로토콜이었으나 현재 웹을 넘어 다양한 분야에서 응용되고 있다.

1.3 TCP/IP

일반적인 네트워크는 TCP/IP 프로토콜을 이용하며, HTTP는 그 중 하나이다.

  • 프로토콜
    : 서로 다른 하드웨어와 OS간 통신을 하기 위해 필요한 규칙

  • TCP/IP
    : 인터넷과 관련된 프로토콜을 모은 것.
    : 4가지 계층으로 나뉘며, 각 계층은 계층이 연결되어 있는 부분만 결정되어 있어 내부 구조를 자유롭게 설계할 수 있다. 이러한 계층 구조는 아래 두 가지 장점을 갖는다.

    (1) 변경이 필요할 때 특정 계층만 바꾸면 된다.
    (2) 설계를 편하게 할 수 있다.

  • TCP/IP 4계층
    (1) 애플리케이션 계층 : 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임 담당.
    (Ex. FTP, DNS, HTTP)

    (2) 트랜스포트 계층 : 네트워크로 연결된 둘 이상의 컴퓨터 사이의 데이터 흐름 제공.
    (Ex. TCP, UDP)

    (3) 네트워크 계층 (= 인터넷 계층)
    : 네트워크 상에서 패킷의 이동을 다룬다.
    : 여러가지 경로 선택지에서 어떻게 상대 컴퓨터에게 패킷을 보낼지 하나의 길을 정한다.

    (4) 링크 계층 (=데이터 링크 계층 / 네트워크 인터페이스 계층)
    : 네트워크에 접속하는 하드웨어적 면을 다룬다.
    : 디바이스 드라이버, 네트워크 인터페이스 카드(NIC), 케이블 등 물리적으로 보이는 하드웨어적 측면을 모두 포함한다.

  • TCP/IP 통신의 흐름 + 캡슐화

    (1) 송신 흐름 : 애플리케이션 - 트랜스포트 - 네트워크 - 링크
    : 각 계층을 거칠 때 헤더로 불려지는 해당 계층마다 해당 계층에서 필요한 정보 추가

    (2) 수신 흐름 : 링크 - 네트워크 - 트랜스포트 - 애플리케이션
    : 각 계층을 거칠 때 헤더로 불려지는 해당 계층마다 해당 계층에서 사용한 정보 삭제


1.4 IP/TCP/DNS

HTTP와 관련이 깊은 TCP/IP의 세 가지 프로토콜

  • IP (Internet Protocol)
    : 네트워크 계층에 해당.
    : 개개의 패킷을 IP 주소와 MAC 주소를 이용해 상대방에게 전달한다.
    : 여러 컴퓨터와 네트워크 기기를 중계하는 동안 ARP 프로토콜을 이용해 수신지의 IP 주소를 바탕으로 다음으로 중계할 곳의 MAC 주소를 찾는 방식으로 목적지를 찾는다.
    : 따라서 목적지까지 중계 중 네트워크는 대략적인 목적지만을 알고 있으며, 이 시스템을 라우팅이라고 한다.

(1) IP 주소 : 각 노드에 부여된 주소. 변경 가능하며, MAC 주소에 의존해 통신한다.
(2) MAC 주소 : 각 네트워크 카드에 할당된 고유 주소. 변경할 수 없다.

  • TCP (Transfer Control Protocol)
    : 트랜스포트 계층에 해당.
    : 바이트 스트림 서비스 - 대용량 데이터를 작게 분해하여 상대에게 보내고 잘 도착했는지 확인.
    : 쓰리웨이 핸드셰이킹 (three way handshaking) 사용

쓰리웨이 핸드셰이킹
SYN, ACK라는 TCP 플래그를 사용해 상대에게 패킷이 잘 보내졌는지 여부를 확인한다.

(1) 송신 시 SYN 플래그로 상대에게 접속하고 패킷 전송
(2) 수신 시 ACK 플래그로 송신측에 접속하고 패킷 수신 사실을 전달
(3) 송신측이 ACK 플래그를 보내 패킷 교환이 완료되었음을 전달

이때 통신이 도중에 끊어지면 TCP는 동시에 같은 수순으로 패킷을 재전송한다.


1.5 DNS

  • DNS (Domain Name System)
    : HTTP와 같은 응용 계층 시스템에서 도메인 이름과 IP 주소 이름 확인을 제공
    : 도메인명에서 IP 주소를 조사하거나, 혹은 IP 주소로부터 도메인명을 조사한다.
    : 사용자는 IP 주소 대신 이름을 이용하는 것이 친숙하지만, 컴퓨터에게는 반대가 선호되는 문제를 해결한다.

1.6 전체 관계


1.7 URL과 URI

  • URL (Uniform Resource Locator)
    : 웹 페이지를 표시하기 위해 입력하는 주소
    : 리소스를 식별하기 위해 문자열 전반을 나타낸다.

  • URI (Uniform Resource Identifiers)
    : 스키마를 나타내는 리소스를 식별하기 위한 식별자
       ※ 스키마 - 리소스를 얻기 위한 수단에 이름을 붙이는 방법
    : 리소스의 장소(=네트워크 상의 위치)를 나타낸다.

  • URL 포맷
    (1) 상대 URL : 브라우저 기준 URI에서 상대적 위치를 지정
    (2) 완전 수식 절대 URI & URL : 필요한 정보를 전체 저장

  • 절대 URI 포맷
    (1) 자격 정보 (크리덴셜) : 서버에서 리소스를 취득하기 위해 사용.
    (2) 서버 주소 : DNS 주소 또는 IPv4, IPv6 주소를 대괄호로 묶어서 지정
    (3) 서버 포트 : 서버 접속 대상인 네트워크 포트 번호. 생략시 디폴트 포트
    (4) 계층적 파일 패스 : 특정 리소스 식별하기 위해 사용
    (5) 쿼리 문자열 : 파일 패스로 지정된 리소스에 파라미터 넘겨주기 위해 사용. 옵션
    (6) 프래그먼트 식별자 : 취득 리소스에서 서브 리소스를 가리키기 위해 사용. 옵션

profile
호그와트 장학생

0개의 댓글