그림으로 배우는 Http Network 1장

Sorbet·2021년 2월 14일
0

그림HNB

목록 보기
1/9

1장 웹과 네트워크의 기본

  • 목차
1.1 웹은 HTTP로 나타낸다
1.2 HTTP는 이렇게 태어났고 성장했다
1.2.1 웹은 지식 공유를 위해 고안되었다
1.2.2 웹이 성장한 시대
1.2.3 진보 안하는 HTTP
1.3 네트워크의 기본은 TCP/IP
1.3.1 TCP/IP는 프로토콜의 집합
1.3.2 계층으로 관리하는 TCP/IP
1.3.3 TCP/IP 통신의 흐름
1.4 HTTP와 관계가 깊은 프로토콜은 IP/TCP/DNS
1.4.1 배송을 담당하는 IP
1.4.2 신뢰성을 담당하는 TCP
1.5 이름 해결을 담당하는 DNS
1.6 이들과 HTTP와의 관계
1.7 URI와 URL
1.7.1 URI는 리소스 식별자
1.7.2 URL 포맷
  • 먼저 워밍업으로 HTTP 역사 이야기를 조금 다룬다
  • 학습하고자 하는 HTTP 이외에도 대부분의 네트워크가 TCP/IP 라는 프로토콜상에서 동작하므로 TCP/IP 가 뭔지 간단하게!

TCP/IP

  • TCP/IP 설명하기 위한 개념
    • 4계층으로 나뉘어있다(애플리케이션/트랜스포트/데이터링크/링크)
    • 4계층으로 나뉘어 있는 이유는 : 일부가 변경될때 해당부분만 교체하면 전체를 수정하지않아도 동작할 수 있어서
      • 우리가 유선인터넷을 쓰나 WiFi를 쓰나 동일하게 인터넷을 사용할 수 있는것처럼
    • 각각의 계층은 연결부(인터페이스)만 결정되어 있으므로 생기는 장점은
      • 내부 계층은 자유롭게 설정/변경이 가능하고 인터페이스, 각 계층별 할일만 정확하게 하면 된다
      • 개발업체/단체에서 설계(개발)시 편리하다. 담당한 부분만 책임지면 나머지는 신경쓰지 않아도 된다
    • 4계층을 간단히 설명하면
      • 어플리케이션 계층 : 최상단에서 동작하는 응용프로그램(이메일, 영상스트리밍..)
      • 트랜스포트 계층 : TCP 혹은 UDP
      • 네트워크 계층 : 네트워크 상에서 패킷의 이동하는 역할 담당함, 어떻게 움직일지 길을 선택하는 라우팅 전략
      • 링크 계층(데이터링크/네트워크인터페이스) : NIC 내부 펌웨어
    • 캡슐화 : 보낼때 계층별로 추가해서 받을때 계층별로 캡슐제거

3대장 프로토콜 : IP/TCP/DNS

  • IP : 목적지에 정확하게 전달하는 기능을 가지고 있는 프로오콜
    • IP라는 프로토콜이 잘 동작하기 위해서 컴퓨터 주소가 필요한데 이게 바로 IP주소
    • 그리고 컴퓨터(NIC)끼리 구별하기 위해서 할당된 고유번호 : MAC 주소
      • MAC기반 목적지 찾아가는 기능 :ARP
    • 라우팅 시스템 : 택배처럼 패킷이라는 정보의 단위가 목적지까지 찾아가는 기능을 위해 라우팅시스템이 존재합니다.
    • 목적지를 향해 전달되는 패킷도, 그 어떤 누구라도 네트워크 전체의 정보를 알수 없으므로, 목적지까지는 최대한 비슷한 방향으로 움직이기며, 최대한 빠른시간안에 단거리로 전달되고자 하는 경향이 있다.
  • TCP : 신뢰성있는 바이트스트림 서비스 제공 프로토콜
    • 바이트 스트림 서비스 : 데이터 교환을 위해 문자열이 계속, 연속적으로 쪼개져 들어온다
    • 신뢰성 있는 : 주고받는 데이터가 완전한 데이터임을 보장한다
      • 신뢰성 확보를 위해 연결이 수립될때(애스타빌리쉬) 사용하는 기법 : 쓰리웨이 핸드쉐이킹
        • 군대나 파일럿들 호텔주방등에서 사고를 방지하기위해 "복명복창" 정보가 전달되었음을 확인하는 응답을 보내 한번더 확인하는 방식
          : SYN 혹은 ACK 플래그를 이용해 응답확인, 3단계임(SYN-SYN/ACK-ACK)
        • 모든 정보단위(패킷)마다 3단계(SYN-SYN/ACK-ACK) 전송을 확인하기 때문에 신뢰성이 보증된다
  • DNS : 도메인네임과 ip주소를 맵핑해주는 시스템/서버

URL/URI

  • URL과 URI차이
    • URL : www.google.com ->> 메인페이지만을 의미함
    • URI : www.google.com/serach="JAVA"/auth="foca" ->> URL과 더불어서 추가적인 정보를 요청
  • 여기서 URI란? 이름을 쪼개서 알아보면
    • U = 유니포미티, : 여러가지 종류의 리소스를 통일된 형태로 지원할꺼다
    • R = 리소스 , : 리소스(자원)이란 식별가능한 모든것, 도큐먼트, 서비스, 데이터(바이너리, 등등..)
    • I = 아이덴티파이어 : 식별자,스키마를 나타내는 리소스 식별을 위해 사용
profile
Sorbet is good...!

0개의 댓글