_DoYun
_yunilog
_DoYun
전체 방문자
오늘
어제
  • 전체 (83)
    • spring boot main 프로젝트 해결 (2)
    • 회고 (0)
      • pre-project(stackoverflow) (0)
    • 지식창고 (25)
    • 후기 (1)
    • LINUX (2)
    • HTML&CSS (2)
    • SQL (2)
    • 기술 면접 질문지 (1)
      • Chapter1 (1)
      • Chapter2 (0)
    • JAVA (25)
      • JAVA 기초 문법 (1)
      • Collection (1)
      • Enum,Annotation,Stream,람다 (3)
      • 입출력, Thread, JVM (1)
      • Spring Framework (3)
      • Spring MVC (6)
      • JPA (1)
      • Test (3)
      • API 문서 (1)
      • 인증&보안 (2)
      • AWS (2)
    • 알고리즘 (19)
      • 프로그래머스_LEVEL_3 (6)
      • 백준 (0)
      • 프로그래머스_LEVEL_2 (13)
    • Comento (2)
    • Inflearn (2)
      • HTTP (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
_DoYun

_yunilog

Inflearn/HTTP

[Inflearn] HTTP웹_기본지식 정리

2022. 5. 11. 16:51

나의 컴퓨터 앞에 앉아서 특정 웹 사이트 또는 서버의 내용물들을 확인하고 싶을 때, 특정 URL 클릭 한번으로 우리는 내용들을 확인할 수 있다. 겉으로는 단순한 클릭 한번이지만 그 내면에는 복잡한 과정들이 존재한다.

 

먼저 해당 웹 사이트에 접근하기 위해 우리들의 컴퓨터는 해당 서버에 메시지를 전송한다. 우리의 컴퓨터를 통해 전송된 메시지는 인터넷이라는 거대한 플렛폼 속 수많은 노드들을 지나 특정 서버에 우리들의 메시지를 전달한다. 

 

우리가 생각하기에 원하는 정보를 가진 사이트는 단 하나지만, 별도의 처리 없이 수많은 웹 사이트들 중 한가지를 특정 짓는 것은 어려운 일이다. 때문에 전문가들은 이 과정을 보다 용이하게 하기 위해 IP주소라는 것을 각각 부여했다.

 

 # IP(인터넷 프로토콜)

위 그림처럼 각 서버에는 IP 주소가 존재한다. 해당 IP주소를 활용하여 특정 서버를 찾아갈 수 있는 것이다. IP는 패킷이라는 통신 단위로 데이터를 전달하는데 

 

파랑색으로 전달하고자 하는 데이터를 뒤덮고 있는 것이 IP 패킷이다. 패킷에는 출발 IP와 목적 IP가 존재하여 데이터를 보다 정확하게 원하는 서버에 전달 및 반환 받는 것이 가능하다.

 

IP의 한계 

IP의 한계는 크게 3가지가 존재한다. 

  • 비연결성
연결하고자 하는 서버가 서비스 불가여도 패킷을 전송한다.
  • 비신회성
패킷이 노드 이동중에 사라질 수 있다.
  • 프로그램 구분
동일한 IP주소를 사용하는 기기가 둘 이상일 수 있다. 

 

이러한 IP의 명확한 한계 덕분에 TCP 세그먼트가 등장할 수 있었다. 

 

# TCP(Transmission Control Protocol)

TCP는 전송 제어 프로토콜(Transmission Control Protocol)의 약자이며, 위와 같이 IP의 한계를 극복하고자 만들어졌다. TCP는 port 주소를 활용하여 같은 IP내에 여러 프로세스들을 각각 연결할 수 있도록 지원한다. 또한 데이터의 전달을 보증하고 옳바른 순서를 요구한다. 

 

특히 TCP의 가장 큰 특징은 3 way handshake인데

 

위 그림과 같이 3번의 연결과정을 통해 데이터를 전송한다. 속도는 느리지만 신뢰성이 높고 안전하다. SYN은 접속 요청을 뜻하며 ACK는 요청 수락을 의미한다. 

 

TCP 세그먼트까지 포함한 전송 데이터는 위와 같은 형태이다. IP주소를 포함하는 IP패킷을 감싸는 형태로 출발 port, 목적 port, 순서, 전송제어 등의 정보들을 포함하여 전송한다. 안전성과 신뢰성이 높은 프로토콜이기 때문에 현대에는 대부분 TCP를 활용한다. 

 

# URI(Uniform Resource Identifier)

URI의 U는 리소스를 식별하는 통일된 방식, R은 URI로 식별할 수 있는 모든 자원, I는 다른 항목과 구분하는데 필요한 정보를 의미한다.

 

URL은 URI에 포함되는 개념으로 locator, 리소스가 있는 위치를 지정한다는 뜻을 가지고 있다. 전체적인 구조는 다음과 같다. 

 

프로토콜은 어떤 방식으로 자원에 접근할 것인가를 의미한다. 종류로는 http, https, ftp 등이 있고 https의 경우 http에 보안을 추가한 것으로 이해하면 편하다. 

 

HTTP는 HTML, TEXT, 이미지, 음성, 영상, 파일, json 등 거의 모든 데이터를 전송하는 것이 가능하다. 

 

주요 특징은 다음과 같다. 

  • 클라이언트 서버 구조
  • 무상태 프로토콜, 비연결성
  • http메시지
  • 단순함, 확장가능

 

 

'Inflearn > HTTP' 카테고리의 다른 글

[Inflearn] HTTP 기본 구조  (0) 2022.05.11
    'Inflearn/HTTP' 카테고리의 다른 글
    • [Inflearn] HTTP 기본 구조
    _DoYun
    _DoYun

    티스토리툴바