Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

블로그 이름 뭐하지

[IT개념] 서버와 네트워크 본문

카테고리 없음

[IT개념] 서버와 네트워크

가는말이고우면오는말은come 2024. 9. 29. 15:47

네트워크

여러 대의 컴퓨터 또는 장비가 서로 연결되어 정보를 주고 받을 수 있게 도와주는 기술(ex.인터넷)

서로 정보를 주고 받기 위해 IP 주소, 서브넷 마스크, 게이트 웨이등의 정보를 설정하고,

네트워크 프로토콜을 통해 통신한다.

 

네트워크 구성요소

엣지(Edge) : 사용자의 기기가 네트워크에 직접 연결되는 지점

네트워크와 사용자 간의 첫번째 접점이며 사용자의 데이터 트래픽을 네트워크의 내부로 전달.

 

엑세스(Access) : 사용자가 네트워크의 자원에 접근하도록 하는 계층

사용자가 네트워크 서비스를 이용할 수 있게 하는 다리 역할.

유선 인터넷 연결에서는 이더넷(Ethernet) 스위치가,

무선연결에서는 와이파이(Wifi) 라우터가 엑세스 객체의 역할을 수행함

 

코어(Core) : 네트워크의 중심부에 위치.

고속의 데이터 전송과 대규모 데이터 처리를 담당.

여러 엣지 네트워크들 사이의 데이터를 중계하고,

때로는 데이터를 처리하는데 필요한 고성능 장비로 구성.

 

Client와 Server

네트워크에서 서버와 클라이언트는 정보와 자원의 교환을 가능하게 하는 중요한 요소이다.

 

Client 

서버로부터 데이터나 서비스를 요청하는 기기 또는 소프트웨어.

ex. 웹 브라우저, 온라인 게임, 이메일 클라이언트

클라이언트는 사용자와 서버사이의 인터페이스 역할을 하며,

사용자의 요청을 서버에 전달하고 서버에서 받은 응답을 사용자에게 보여준다.

네트워크의 엣지부분을 담당한다.

 

Server

네트워크 상에서 데이터와 자원을 제공하는 컴퓨터 또는 시스템.

DB관리, 웹 페이지 호스팅, 이메일 서비스 제공 등의 역할을 수행한다.

여러 클라이언트 요청을 동시에 처리하도록 설계된다.

네트워크의 코어를 담당한다.

브라우저에서 서버에 정보를 요청하는 과정을 표현한 것이다.

사용자는 브라우저를 통해 서버에 정보를 요청(request)하고 응답(response)을 받는다.

이때 사용자의 요청이 서버에 도달하기 위해서는 해당 서버의 정보가 필요하다.

요청이 서버에 정확히 도달할 수 있도록 제공되는 정보가 IP 주소이다.(ex. 192.168.0.123)

 

IP주소란 네트워크 망에서 컴퓨터를 식별하기 위한 위치주소이다.

네트워크상에서 데이터 송수신은 IP 주소를 기준으로 이루어진다.

  택배 네트워크
주소-IP 서울시 강남구 테헤란로... 192.168.....
받는사람-포트 홍길동 8080

 

정보가 도달하기 위해서는 주소에 해당하는 IP와 받는 사람에 해당하는 포트번호가 필요하다.

 

웹 서버

인터넷으로 HTTP를 이용해 웹상의 클라이언트의 요청을 응답해주는 통신을 담당하는 컴퓨터

이메일, SNS등의 대부분의 서비스는 웹 서버를 통해 이용할 수 있다.

 

기본 동작 원리

1. 브라우저를 통해 HTTP Request로 웹사이트를 웹서버에 요청한다

2. 웹서버가 요청을 승인하고 HTTP Response를 통해 웹사이트 데이터를 브라우저에 전송한다.

3. 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려낸다.

(기본적으로 브라우저가 웹서버에 요청할 때는 항상 GET Method로 요청한다.)

 

API

application programming interface의 약자.

다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한 것이다.

개발자는 다른 어플리케이션이 프로그래밍 방식으로 어플리케이션과 통신할 수 있도록

API를 표시하거나 생성한다.

 

Restful API

Representational State Transfer(Rest)

API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처.

인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌다.

Rest 아키텍처 스타일을 따르는 API를 Rest API,

Rest 아키텍처를 구현하는 웹서비스를 Restful 웹서비스라고 한다.

서버의 api가 http를 적절히 준수하고 잘 설계되어 있으면 Restful하게 설계되었다고 한다.

(API의 리소스 식별자를 중복없이 고유하게 잘 만들고, 해당 API에 적절하게 HTTP 메서드를 사용했을 경우)

 

HTTP

데이터를 주고받는 양식을 정의한 통신규약(컴퓨터끼리 데이터를 교환할 때 정해둔 약속) 중 하나

매우 범용적인 양식으로 전세계에서 가장 널리 쓰인다.

대부분의 웹서버, 모든 브라우저가 HTTP를 기반으로 한다.

HTTP에서는 Request, Response 개념이 존재한다.

브라우저는 서버에게 원하는 페이지(url 정보 등)를 요구(request)하고,

서버는 브라우저가 원하는 페이지가 있는지 확인하고 있다면 응답(response)해준다.

 

브라우저에서 HTTP의 동작 확인

 

개발자도구(F12) > 네트워크(Network)탭 > 새로고침(F5)

아래 나오는 것이 브라우저가 페이지를 구성하기 위해 서버에서 받아온 데이터 목록들이다.

 

좌측의 Name 목록 중 하나를 누르면 다음과 같이 Header 탭이 뜬다.

General은 브라우저에서 서버로 보낸 Request 메세지이다.

Request Headers는 브라우저에서 서버로 보낸 Request 데이터,

Response Headers는 서버가 웹페이지 데이터와 함께 보낸 추가 데이터이다.

 

Response 탭은 서버에서 브라우저로 반환해준 웹페이지를 그려주기 위한 데이터를 담고 있다.

 

(좌)Headers 탭 (우) Response 탭

 

Status Code

 

Status Code는 HTTP 상태코드로 브라우저와 서버간의 요청, 응답 중의 상황을 표현한다.

첫번째 자리 숫자는 상태 코드의 분류를 나타내는 용도이고, 나머지 두개는 세부적인 정보를 나타낸다.

 

1) 1xx (Informational)

요청이 수신되었으며 처리가 계속됨을 나타낸다.

주로 웹 브라우저와 같은 클라이언트가 서버와의 연결상태를 확인하기 위해 사용된다.

 

2) 2xx (Successful)

클라이언트의 요청이 성공적으로 처리되었으며 요청 데이터가 서버에서 제공됨을 의미한다.

 

3) 3xx (Redirection)

클라이언트가 추가적인 조치를 취해야 함을 나타낸다.

주로 페이지 이동, 리다이렉션 등에 사용된다.

 

4) 4xx(Client Error)

클라이언트에 오류가 있음을 나타낸다.

클라이언트의 잘못된 요청, 인증 오류 등에 사용된다.

가장 많이 사용되는 404 코드는 클라이언트가 요청한 페이지, 리소스를 서버에서 찾을 수 없음을 의미한다.

 

5) 5xx(Server Error)

서버에 오류가 있음을 나타낸다.

서버의 오류, 서버 과부하 등에 사용된다.

 

 

HTTP의 구성요소

 

1. Method(호출, 요청 방식)

Get : 어떤 리소스를 얻을 때, 사용한다.

브라우저의 주소창에 URL을 입력하면 GET 메서드를 통해 서버에 요청을 보낸다.

Post : 웹서버에 데이터를 게시할 때 사용한다.(ex. 회원가입, 게시글, 댓글 작성)

그외 Delete, Put 등의 여러 요청 방식이 존재한다.

 

2. Header(추가 데이터, 메타 데이터)

브라우저가 어떤 페이지를 원하는지,

요청받은 페이지를 찾았는지,

요청받은 데이터를 성공적으로 찾았는지,

어떤 방식으로 데이터를 보낼지,

메서드를 포함한 의사표현을 위한 데이터도 모두 헤더에 포함되어 서버로 보내진다.

 

3. Payload(데이터, 실제 데이터)

서버가 응답을 보낼 때, 클라이언트가 요청을 할 때 payload를 보낼 수 있다.

Get 메서드를 제외하고는 모두 Payload를 보낼 수 있다.

Payload를 통해 HTML, JSON 파일을 요청하고 응답받을 수 있다.

 

참고한 링크

 

네트워크 기초 : 네트워크 그리고 서버란?

안녕하세요 😎 네트워크 기초에 대해서 정리해보았습니다. ICT 개요, 네트워크 정의 및 구성 요소에 대해서 다룹니다.

velog.io