본문 바로가기
Backend 🖥️

웹통신이란?

by 봄설날 2024. 7. 24.

#1 웹 통신의 기본 개념

웹통신은 기본적으로 클라이언트와 서버 간의 상호작용을 기반으로 하고 이를 '클라이언트 - 서버 모델' 이라 부른다

 

클라이언트 - 서버 모델

클라이언트는 주로 웹 브라우저와 같은 사용자의 요청을 보내는 역할을 하며, 서버는 이러한 요청을 처리하고 응답을 반환하는 역할을 한다.

 

#2 프로토콜

클라이언트와 서버 간의 상호작용이라 설명했는데, 그렇다면 클라이언트와 서버간의 통신은 어떻게 이루어질까?

이때 나오는 용어가 프로토콜이다. 클라이언트와 서버간의 통신이 프로토콜을 통해 이루어지는 것이다.

 

프로토콜은 데이터 교환 규칙을 정의하며, 여러가지 종류가 있지만 웹 통신에서 가장 일반적으로 사용되는 프로토콜은 HTTP(및 HTTPS)이다.

#3 HTTP (Hypertext Transfer Protocol) 알아보기

HTTP는 웹 통신을 위한 기본 프로토콜로, 클라이언트와 서버 간의 요청과 응답을 규정한다.

크게 HTTP 요청과 HTTP 응답으로 나누어 볼 수 있는 것이다.

1. HTTP 요청(Request)

HTTP 요청은 클라이언트가 서버에 보내는 메시지이다.
HTTP 요청을 자세히 나눠서 살펴보면 아래와 같은 구성 요소가 있다.

요청 라인(Request Line): 요청 메서드(GET, POST, PUT, DELETE 등), 요청 URI, HTTP 버전
헤더(Headers): 요청에 대한 메타데이터(예: Content-Type, User-Agent, Authorization 등)
바디(Body): POST나 PUT 요청에서 자원의 데이터를 포함

 

2. HTTP 응답(Response)

 

HTTP 응답은 서버가 클라이언트에 보내는 메시지이다.

자세히 나눠서 살펴보면 마찬가지로 아래와 같은 구성 요소가 있다.

상태 라인(Status Line): HTTP 버전, 상태 코드(200, 404, 500 등), 상태 메시지
헤더(Headers): 응답에 대한 메타데이터(예: Content-Type, Set-Cookie 등)
바디(Body): 응답 데이터(예: HTML, JSON, 이미지 등)
상태 코드(Status Codes) 란?

상태 코드는 HTTP 응답에서 요청의 성공 여부를 나타낸다. 가끔 인터넷을 사용하다보면 404 ERROR 와 같은 에러 메세지를 본 적이 있을것이다. 바로 통신상에서 오류를 알려주는 상태코드였던 것이다. 또한 개발 할 때, 오류를 찾아내는데에 큰 도움이 돤다.

1xx (정보): 요청을 처리 중
2xx (성공): 요청이 성공적으로 처리됨 (200: OK, 201: Created)
3xx (리다이렉션): 요청한 리소스가 다른 위치로 이동됨 (301: Moved Permanently, 302: Found)
4xx (클라이언트 오류): 클라이언트 측의 오류 (400: Bad Request, 401: Unauthorized, 404: Not Found)
5xx (서버 오류): 서버 측의 오류 (500: Internal Server Error, 503: Service Unavailable)

 

#3-1 HTTPS (Hypertext Transfer Protocol Secure)

HTTPS는 HTTP의 보안 버전으로, SSL/TLS를 사용하여 데이터 전송을 암호화한다. 이를 통해 클라이언트와 서버 간의 통신을 보호한다. 대부분의 경우 https를 사용하고있다.

#4 웹 통신의 기술

앞서 프로토콜에는 여러가지가 있다고 언급했는데, HTTP 외에 이러한 기술들도 있다.

  1. AJAX (Asynchronous JavaScript and XML): 클라이언트 측에서 비동기적으로 서버와 통신할 수 있도록 하는 기술. 주로 JSON을 사용하여 데이터 교환.
  2. WebSocket: 실시간 양방향 통신을 가능하게 하는 프로토콜. HTTP와는 달리 연결이 지속되어, 서버와 클라이언트 간의 실시간 데이터 전송이 가능.
  3. REST API: HTTP 프로토콜을 기반으로 한 API. CRUD 작업을 HTTP 메서드로 매핑하여 자원을 관리.
  4. GraphQL: 페이스북에서 개발한 데이터 쿼리 언어로, 클라이언트가 필요한 데이터만 요청할 수 있도록 설계.
  5. SOAP (Simple Object Access Protocol): XML 기반의 메시지 프로토콜로, 주로 엔터프라이즈 환경에서 사용. REST보다 더 강력한 보안과 트랜잭션을 제공

    특히 실시간 채팅와 같은 실시간 통신이 필요 할 경우 웹소켓 통신을 사용하게 되는데, 나중에 따로 자세히 알아보겠다!

'Backend 🖥️' 카테고리의 다른 글

ORM이란?  (0) 2024.07.24
Database 와 SQL  (0) 2024.07.24
Swagger와 Postman  (0) 2024.07.24
프레임워크(Framework)란?  (0) 2024.07.24
REST API 란? (REST, RESTful 에 대하여)  (0) 2024.03.27