1.1 웹은 HTTP로 나타낸다.
서버에서 클라이언트까지 일련의 흐름을 결정하는 프로토콜(약속)입니다.
1.2 HTTP는 이렇게 태어났고 성장했다.
1.2.1 웹은 지식 공유를 위해 고안되었다.
1989년 3월 연구자들의 지식 공유를 지원하기 위해 제안 된 방식으로 SGML을 베이스로 한 HTML, 문서 전송 프로토콜 HTTP, 주소 지정으로 URL등이 제안되었습니다.
1.2.2 웹이 성장한 시대
1990년 11월 최초의 웹 서버와 웹 브라우저가 개발되었고, 여러 브라우저들이 출시 되었습니다.
1.2.3 진보 안하는 HTTP
1.0이 나온 이후 1년만에 1.1이 나왔지만, 현재까지 2.0가 나왔음에도 1.1이 대부분 사용되는 중입니다.
1.3 네트워크의 기본은 TCP/IP
1.3.1 TCP/IP는 프로토콜의 집합
인터넷과 관련된 프로토콜들을 모은 것들과 IP 프로토콜을 사용한 통신에서 사용되고 있는 프로토콜을 총칭해서 TCP/IP로 불리고 있으며, 온라인상 안전하고 효율적인 데이터 전송의 필수 요건을 정의합니다.
1.3.2 계층으로 관리하는 TCP/IP
TCP/IP는 애플리케이션 계층, 트랜스포트 계층, 네트워크 계층, 링크 계층 이렇게 4개로 나누어져 있습니다. 이러한 계층화는 수정 사항이 발생했을 때 일부 계층만 변경하면 되기 때문에 유리합니다.
4계층은 TCP/IP의 규칙이나 프로토콜이 적용되는 특정한 조건을 의미합니다.
•
Application Layer : 유저의 애플리케이션에서 사용하는 통신의 움직임을 결정합니다. ex) FTP, DNS, HTTP
•
Transport Layer : 네트워크로 접속된 2대 컴퓨터 사이의 데이터 흐름을 제공하는데 TCP와 UDP 두가지 프로토콜이 존재합니다.
•
Network(Internet) Layer : 네트워크 상에서 패킷의 이동을 다룹니다.
•
Link Layer : 하드웨어적인 면을 다루며 디바이스 드라이버와 NIC를 포함합니다.
OSI 7계층과 TCP/IP 4계층
1.3.3 TCP/IP 통신의 흐름
HTTP를 예를 들면
송신측 애플리케이선 계층에서 리퀘스트를 날림 → 트랜스포트 계층에서는 데이터를 조각내고, 안내번호와 포트 번호를 붙여 네트워크 계층으로 전달 → 네트워크 계층에서 수신지 MAC주가를 추가 → 링크 계층에서 전송 과정이 일어납니다.
각 계층을 거칠 때 헤더를 추가하며, 수신측에서는 각 계층을 거칠 때 마다 헤더를 삭제하는 이를 캡슐화라고 합니다.
1.4 HTTP와 관계가 깊은 프로토콜은 IP/TCP/DNS
1.4.1 배송을 담당하는 IP
IP는 네트워크 층에 해당하며, IP는 프로토콜의 명칭입니다. 역할은 개개의 패킷을 상대방에게 전달하는 것으로, IP 주소, MAC주소가 필요로 하는데 IP주소는 각 노드에 부여된 주소를 가리키고, MAC주소는 각 네트워크 카드에 할당된 고유의 주소입니다.
통신은 ARP(Address Resolution Protocol)이라는 프로토콜을 사용해서 MAC 주소에 의존해서 진행되는데 IP주소를 바탕으로 MAC 주소를 조사합니다.
1.4.2 신뢰성을 담당하는 TCP
TCP는 트랜스포트 층에 해당하는데 신뢰성 있는 바이트 스트림 서비스와 이에 대한 도착 신뢰석을 확인합니다.
이것을 Three Way Handshaking이라는 방법을 SYN과 ACK라는 TCP 플래그를 통해서 신뢰성을 확보하는데 3번의 방향으로 전송이 오고
가기에 Three Way Handshaking이라는 단어를 사용합니다.
•
SYN : synchronize sequence numbers
•
ACK : acknowledgment
1.5 이름 해결을 담당하는 DNS
DNS는 HTTP와 같이 응용 계승 시스템에서 도메인 이름과 IP주소 이름 확인을 제공하는데 DNS는 도메인 명에서 IP주소를 조사하거나 반대 서비스도 제공하고 있습니다.
1.6 각각과 HTTP와의 관계
클라이언트 : 요청
DNS : URL에 맞는 IP주소를 알려줌
HTTP : 서버에 보낼 HTTP 메시지 작성
TCP : 메시지를 패킷으로 분해
IP : 보낼 곳 중계 및 배송
HTTP : 리퀘스트 내용 처리
서버 : 요청 수신
1.7 URI와 URL
1.7.1 URI는 리소스 식별자
URL : 웹페이지를 표시하기위해 입력하는 주소
URI : Uniform resource Identifiers의 약자로
•
Uniform : 통일된 서식을 결정으로 새로운 스키마(http:, ftp) 도입을 쉽게 합니다.
•
Resource : 식별 가능한 모든 것으로 파일, 이미지와 서비스 등 모든 구별 가능한 것은 리소스입니다.
•
Identifier : tlrqufwkfh qnfflau, flthtmfmf tlrqufgkrl dnlgks tlrqufwkdlqslek.
URI는 리소스를 식별하기 위해 문자열 전반을 나타내는데 비해 URL은 리소스의 장소를 나타냅니다.
1.7.2 URL 포맷
•
http:// : 스키마
•
user@pass : 자격 정보
•
www.example.com : 서버주소
◦
DNS이름이나 IPv4, IPv6 주소를 대괄호로 묶어서 지정합니다.
•
8080 : 서버 포트
•
/dir/index.html : 파일 패스
•
?uid : 쿼리
•
#ch1 : 프래그먼트 식별자
프래그먼트 식별자란? 앵커의 역학을 하는 것으로 오디오나 동영상에 북마크 역할을 합니다.