IT/HTTP

[HTTP] 인터넷 네트워크

happy_life 2022. 6. 1. 21:39

 

목차

1. IP(인터넷 프로토콜)

2. TCP

3. UDP

4. PORT

5. DNS

6. URL

7. 웹 브라우저 요청 흐름

 

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

  1. 클라이언트에서 SYN이라는 접속 요청을 보낸다.
  2. 서버는 SYN에 대한 응답으로 ACK를 보내고 또한, 클라이언트에게 SYN으로 접속 요청을 보낸다.
  3. 마지막으로 클라이언트가 SYN에 대한 응답으로 ACK를 보내면 연결이 된다.
  4. 이후 데이터를 전송하므로, 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