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 주소
- 라우팅 시스템 : 택배처럼 패킷이라는 정보의 단위가 목적지까지 찾아가는 기능을 위해 라우팅시스템이 존재합니다.
- 목적지를 향해 전달되는 패킷도, 그 어떤 누구라도 네트워크 전체의 정보를 알수 없으므로, 목적지까지는 최대한 비슷한 방향으로 움직이기며, 최대한 빠른시간안에 단거리로 전달되고자 하는 경향이 있다.
- 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 = 아이덴티파이어 : 식별자,스키마를 나타내는 리소스 식별을 위해 사용