모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런
www.inflearn.com
* 김영한 선생님의 모든 개발자를 위한 HTTP 웹 기본 지식을 수강하고 간략히 정리해보자.
인터넷에서 컴퓨터 둘은 어떻게 통신할까?
직접적으로 두 컴퓨터가 연결 되면 통신에 어려움이 없지만 위 사진처럼 컴퓨터 사이에 인터넷이 있고 그게 복잡한 망으로 구성되면 두 컴퓨터 사이에 통신은 쉽지 않을 수 있다. 이 문제를 위해 IP가 등장한다.
IP 패킷은 송장이 붙은 택배상자라고 이해하면 쉽다. 예를 들어 내가 A회사에서 상품을 시키면 보내는 분(출발지) 받는 분(본인)에 대한 송장이 붙은 내용물(전송 데이터)이 올 것이다.
패킷 전달 과정은 다음과 같다.
송장에 출발지와 목적지만 있다면 택배가 잘도착할까? IP프로토콜은 다음과 같은 한계가 있다.
1.비연결성
패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
2.비신뢰성
중간에 패킷이 사라지면 ?
패킷이 순서대로 안오면 ?
3.프로그램 구분
같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 ?
예를들어 한 PC에서 게임도 하고 음악도 들으면 애플리케이션 여러 개가 같은 아이피를 쓰고 있다. IP를 가지고 구분할 수 있을까?
이 문제를 위해 TCP/UDP 가 등장한다.
위 사진은 메시지를 작성하고 패킷이 생성되는 과정이다. 네트워크 인터페이스(검은 부분)은 웹 개발공부에 중요하지 않으므로 넘어간다.
패킷에 TCP세그먼트를 추가하면서 아이피 만으로는 해결이 안됐던 전송제어, 순서 등이 해결이 된다. 다음은 TCP 특징이다.
-SYN(synchronize) : 접속 요청
-ACK(acknowledge) : 요청 수락
사진의 3번의 경우 요즘에는 ACK와 함께 데이터도 전송한다고 한다.
위에 TCP 연결이 되었다고 연결이 된 게 아니라 개념적으로 연결되어 있을 뿐이다. 인터넷 망에 있는 수 많은 서버들이 연결되어 있는 건지 잘 모른다.
TCP 프로토콜이 포함되어 있는 패킷은 클라이언트에서 서버로의 데이터 전달 성공 여부를 확인할 수 있다.
TCP 정보 안에는 전송 제어, 순서, 검증 정보가 있어서 순서가 보장된다. TCP프로토콜이 신뢰할 수 있는 프로토콜이라 불리는 이유이다.
UDP는 하얀 도화지라고 생각하면 이해하기 쉽다. 그래서 TCP 3 way handshake, 데이터 전달 보증, 순서 보장을 하지 않는다.
IP와 거의 같다. + PORT + 체크섬(검증) 정도만 추가된다.
요즘에 뜬다고 하는데 아직은 모르겠다.
그럼 이제 IP패킷의 문제점을 보완하여 TCP/IP 패킷에 대해 알아보았다. 어느 정도의 문제를 해결했지만 다음과 같은 경우는 어떨까?
클라이언트 PC에서 IP는 한 개가 할당되어 있다. 음악을 들으면서 게임을하다가 친구한테 메시지를 보낼 땐 패킷을 어떻게 구분할까 ?
이 문제를 해결하기 위해 PORT가 등장한다.
아래의 사진은 TCP에서 보았던 사진이다.
IP가 아파트라면 PORT는 동, 호수라고 이해하면 쉽다. 음악, 게임, 메시지는 100.100.100.1 이라는 아파트에 사는 주민이다. 각 주민의 호수는 1001호, 1002호, 1003호라고 한다면 동시에 A회사(서버)에서 물건(데이터)를 사도(통신을 하는 행위) 배송에는 문제가 없을 것이다.
아래는 실제로 사용하는 PORT 번호이다. 참고하면 좋을 거 같다.
PORT 번호
0 ~ 65535 : 할당 가능
0 ~ 1023 : 잘 알려진 포트라 사용하지 않는 것이 좋음
FTP : 20, 21 / TELNET : 23 / HTTP : 80 / HTTPS : 443
이제 모든 문제가 다 해결됐다고 생각했다. 하지만 한가지 중요한 문제가 남아있었다.
IP주소는 숫자로 되어 있고 하나하나 기억하기 어렵다. IP주소는 바뀌는 일이 쉽게 발생할 수 있고 그에 따라 클라이언트는 접속을 못하게 되는 경우가 생긴다.
이 문제를 해결하기 위해 DNS가 있다. DNS는 Domain Name System 의 약자이다. 이름만 봐도 어떤 느낌인지 감이 온다.
DNS는 일종의 전화번호부인 셈이다 ! 도메인 명을 IP주소로 변환해주는 시스템이다.
파이팅
'WORK > HTTP' 카테고리의 다른 글
[인프런/김영한/모든 개발자를 위한 HTTP웹 기본 지식]HTTP 상태코드 (0) | 2023.11.08 |
---|---|
[인프런/김영한/모든 개발자를 위한 HTTP웹 기본 지식]HTTP 메서드 활용 (0) | 2023.11.08 |
[인프런/김영한/모든 개발자를 위한 HTTP웹 기본 지식]HTTP 메서드 (0) | 2023.04.26 |
[인프런/김영한/모든 개발자를 위한 HTTP웹 기본 지식]HTTP 기본 (0) | 2023.04.26 |
[인프런/김영한/모든 개발자를 위한 HTTP웹 기본 지식]URI와 웹 브라우저 요청 흐름 (0) | 2023.03.15 |