목차
1. IP(인터넷 프로토콜)
1) 역할
- 지정한 IP주소(IP Address)에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
2) 통신과정
- 클라이언트에서 출발지, 목적지 등의 정보를 패킷에 담아 서버로 전송한다.
- 서버에서 출발지, 목적지 등의 정보를 패킷에 담아 클라이언트로 전송한다.
이 과정에서 지나치는 노드는 일정하지 않다.
3) 한계
- 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송한다.
- 비신뢰성: 패킷이 오다가 사라지거나 순서대로 오지 않을 수 있다.
- 프로그램 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 구분할 수 없다.
2. TCP
IP 프로토콜의 한계를 극복하기 위해 IP 위에 TCP 혹은 UDP를 올려 보완하게 되었다.
개념
- 전송 제어 프로토콜(Transmission Control Protocol)
특징
- 연결지향 - TCP 3 way handshake ( 가상 연결)
- 데이터 전달 보증
- 순서 보장
1) 인터넷 프로토콜 스택의 4계층 모형
2) 인터넷 프로토콜 계층이 동작하는 방식
3) TCP 3 way handshake
- 클라이언트에서 SYN이라는 접속 요청을 보낸다.
- 서버는 SYN에 대한 응답으로 ACK를 보내고 또한, 클라이언트에게 SYN으로 접속 요청을 보낸다.
- 마지막으로 클라이언트가 SYN에 대한 응답으로 ACK를 보내면 연결이 된다.
- 이후 데이터를 전송하므로, IP 방식의 단점을 해결할 수 있다.
3. UDP
개념
IP를 사용하는 네트워크 내에서 컴퓨터들 간에 메시지들이 교환될 때 제한된 서비스만을 제공하는 통신 프로토콜이다.
기능이 거의 없고 IP와 비슷. PORT + 체크섬 정도만 추가된 것이다.
(* 체크섬 기능: 도착한 데이터의 손상여부를 확인하는 기능)
4. PORT
한번에 둘 이상 연결해야 한다면 어떻게 구분할까? 의 문제를 해결하기 위해 등장한 것이 PORT 이다. 한 IP 내에서 특정 애플리케이션을 PORT로 구분한다. TCP/IP 패킷 정보에는 출발지 PORT, 도착치 PORT 정보가 담겨 있어 이를 기반으로 서버쪽에서도 데이터를 구분해 전달할 수 있게 된다.
0~65535 할당 가능
0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
5. DNS
IP 기반으로 통신을 한다고 하였는데, IP는 변경될 수 있다. 또 IP는 기억하기 어렵다. 그렇기에 도메인이라는 것을 도입하였고, 이 도메인을 IP주소로 전환해주는 것이 필요하게 되었다.
개념
할당된 도메인 영역에 대한 정보를 가지고 있는 서버
역할
도메인 명을 설정하고 이를 IP주소로 바꿀 수 있게 해준다.
6. URL
개념 범위
URI 라는 큰 틀안에 URL, URN 이라는 것이 있다.
1. URI
- Uniform: 리소스 식별하는 통일된 방식
- Resource: 자원, URI로 식별할 수 있는 모든 것(제한 X)
- Identifier: 다른 항목과 구분하는 데 필요한 정보
- URI == URL 이라고 그냥 이해하면 되고, URN은 그냥 그런게 있구나 정도만 알고 넘어가면 된다.
2. URL 분석
"https://www.google.com/search?q=hello&hl=ko"
분석
userinfo, 포트 번호는 생략하는 경우가 많다.
1. [scheme] 주로 프로토콜 사용
2. [/path] 는 리소스의 경로로 계층적 구조로 되어 있다.
3. [?query]
- key = value 형태
- ?로 시작, &로 추가 가능 ? keyA=valueA&keyB=valueB
- query parameter, query string 등으로 불리는데, 웹서버에 제공하는 파라미터로 문자 형태를 지닌다. (숫자를 적어도 문자로 넘어감)
* 프로토콜: 어떤 방식으로 자원에 접근할 것인가를 정한 규칙
* 호스트: 손님을 맞이하는 집주인, 인터넷을 통해 다른 컴퓨터들과 쌍방향 통신이 가능한 컴퓨터
* https: http + Secure
7. 웹 브라우저 요청 흐름
주소창에 URL을 입력하면 어떻게 동작할까?
1. DNS, PORT를 조회하고 http 요청 메시지를 생성한다.
http 요청 메시지는 아래와 같이 생겼다.
2. HTTP 메시지를 TCP/IP 통신 과정을 거치며 패킷에 담고, 서버로 전송한다.
1. TCP/IP 통신과정
2. 생성된 패킷 메시지
3. 서버 전송
4. 서버에서 응답 패킷을 만들어 브라우저에 전달
출처: 인프런 김영한님 http 강의
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
'IT > HTTP' 카테고리의 다른 글
[HTTP] HTTP 헤더 (0) | 2022.06.05 |
---|---|
[HTTP] HTTP 상태코드 (0) | 2022.06.04 |
[HTTP] HTTP 메서드 (0) | 2022.06.04 |
[HTTP] HTTP 기본 (0) | 2022.06.03 |