네트워크 : 클라이언트와 서버

Psj·2020년 10월 29일
0

Python

목록 보기
16/41

네트워크

IOT시대인만큼 생활에 밀접한 모든것들이 네트워크에 연결되어있다.
IT의 모든서비스는 네트워크가 연결되어있다는 가정하에 시행된다.
우리는 네트워크안에서 인터넷웹서비스를 사용하게된다.

클라이언트와 서버

client
노트북, 데스크탑, 스마트폰 등에 설치된 크롬,인터넷,사파리,파이어폭스등 웹브라우저 등이 클라이언트다.
클라이언트를 통해 특정사이트에 들어가 그들이 제공해주는 서비스를 받는다.
그들이 제공해주는 서비스가 있는곳이 서버
이 서버에 접근해서 어떠한 데이터를 받기위해서 사용하는것을 클라이언트라고한다.
클라이언트는 과거에는 웹브라우저가 대부분의 역할을 했지만 웹브라우저만을 클라이언트라고 부르지는 않는다.
스마트폰에 설치할수있는 앱인 페이스북,유투브,트위터 등도 클라이언트다.
그리고 우리가 개발에서 많이 사용하는 명령프롬프트도 클라이언트의 하나이다.
내가 서버쪽으로 어떤 액션을 취해서 서버에 있는 데이터를 보거나 컨트롤하길 원한다면 다 클라이언트라고 한다.
크게 디바이스와 소프트웨어를 아울러서 클라이언트라고도 한다.

server
클라이언트가 어떠한 정보를 보기를 원할때 어떤 특정 도메인이나 특정 프로토콜을 이용해 서버에 접속을하여 데이터를 얻는다.
즉 어떠한 특정한 데이터가 모여있는곳을 서버라고 한다.

클라이언트와 서버의 관계

클라이언트가 먼저 서버에 "90년대 노래는 뭔지?, 오늘의 날씨는 어떤지?" 등의 수많은 요청(request)을한다. 그러면 서버는 그 요청에 맞는 적당한 어떠한 작업을 수행을한다.
그리고 클라이언트의 요청(request)에 대한 응답(response)을 보낸다.
간단하게 말해서 클라이언트와 서버의 관계는 데이터를 요청하고 데이터를 응답하는 관계이다.
그리고 이 관계에서 주로 많이 쓰이는 통신이 HTTP라는 통신프로토콜이다.

HTTP프로토콜의 특징

클라이언트가 서버에 요청을 보내면 서버는 그 클라이언트에 응답을하고 바로 관계를 끊어버린다.
그리고 다음에 새로로운 요청이 들어오면 다시 그에대한 응답을 하고 바로 관계를 끊어버린다.
이렇게 하는 이유는 수많은 사람들이 클라이언트에 접속해 서버에 요청을 보내고 서버가 그에대한 응답하는 관계를 끊지않고 유지하고 있으면 서버에 과부하가 걸려 폭발할수도 있기때문이다. 그래서 서버는 클라이언트에게 응답을 하자마자 클라이언트와의 순간적인 관계를 끊어버리고 이것을 HTTP 통신프로토콜이라고 한다.

쿠키와 세션

예를들어 내가 쇼핑몰에서 어떤 물건을 장바구니에 넣고 구입한다고했을때 위에서 말했듯이 HTTP프로토콜 특성으로 관계를 순간순간 계속끊으면 데이터가 계속해서 초기화된다는 뜻으로 결국 장바구니에 담긴 물건은 없다는것이 되어버린다.
그래서 이런경우 연결을 유지하고싶을때 특정하게 생성하는것이 쿠기와 세션이다.

쿠키와 세션은 방식은 똑같지만 데이터가 PC에 머물면 쿠키이고 서버에 머무르면 세션이다.
HTTP에서 응답을 끊어버리면 동일한 키값을가지고 다시한번 요청에 들어간다.
그럴때 동일한 키값이 있다면 연결을 과거에서 지금까지 계속 유지했던것처럼 데이터흐름을 이어나갈수있다.
한번접속할때 자동으로 PC에서 쿠키값을 생성하고 쿠키값을 PC와 서버에 동시에 놔두고 통신할때 비교하며 연결을 유지해나가는것이 쿠키방식이다.

세션은 쿠키와 방식이 비슷한데 서버에서 세션값을 생성해 비교해서 연결이 계속유지되는 것처럼 보이게 하는방식이다.
보안상의 이유나 고수준에서는 세션을 이용을 주로 한다.

HTTP처리방식

client -> server -> DB

위에서 클라이언트와 서버의 관계를 request와 response 방식이라고 했다.
서버도 데이터베이스에서 어떠한 데이터를 가져와야하기때문에 request하는 과정이 있다. 그리고 DB에서 response를 받는다.

<클라이언트가 서버에 request를 할때의 8가지 방식>

  • POST, GET, PUT, DELETE, HEAD,OPTION,TRACE,CONNECT
    이 중 가장 많이 사용하는것이 POST, GET, PUT, DELETE이다.

POST : 새로운 글을 입력을해서 서버에 입력하기를 원할때 사용. ex)댓글, 블로그 작성

GET : 오늘의 날씨가 어떤지를 찾는것처럼 원하는 데이터가 필요할때 사용

PUT : 기존의 서버에 있는 데이터를 수정하고 싶을때 사용

DELETE : 기존의 서버에 있는 데이터를 삭제하고 싶을때 사용

<서버가 클라이언트에 request를 할때의 4가지 방식>

  • create, read, update, delete

    creat : 생성 (POST와 비슷한 역할)
    read : 조회 (GET과 비슷한 역할)
    update : 수정 (PUT과 비슷한 역할)
    delete : 삭제 (DELETE와 비슷한 역할)

URL

REST URL : URL기본형태를 간단하게 만든것

profile
Software Developer

0개의 댓글