몰입공간

[Web] 클라이언트 - 서버 모델, GET과 POST 개념 잡기 본문

Programming/Web

[Web] 클라이언트 - 서버 모델, GET과 POST 개념 잡기

sahayana 2021. 12. 15. 21:53

#1 클라이언트 - 서버 모델

서버-클라이언트 다이어그램 (정확히는 DB까지 추가하여 3-tier 아키텍쳐라고 부른다.)

1-1. 클라이언트

  • 엄밀히 말해 서버에 접근해 상호작용이 가능한 브라우저(혹은 소프트웨어)를 의미하지만 보통 '사용자(user)'를 지칭한다.
  • 유저의 입력을 처리하고 이를 받아서 서버에 데이터를 요청한다.

1-2. 서버

  • 클라이언트 및 DB와 통신하여 클라이언트의 요청을 처리하고 이를 다시 보내준다.
  • 통상적으로 웹/앱을 의미한다.

1-3. 데이터베이스(DB)

  • 서버로 부터 분리된 외부의 데이터 저장 공간을 의미한다.
  • 서버 자체에 두어도 교류가 가능하지만, 비즈니스 형태로 발전하여 방대한 데이터를 다룬다면 보안과 편리성 등 여러가지 이유로 따로 설정한다.

1-4. 작동방식

  • 데이터 교류를 위한 서버와 클라이언트의 상호작용은 '네트워크'를 통해 이루어진다.
  • 데이터 교류 상호작용은 특정한 규격을 통해 요청(request) 및 응답(response)이 일어나게 되는데 그 규격이 바로 'HTTP' 이다.
  • HTTP의 메서드 중 알아볼것이 다음 등장하는 GET과 POST이다.

 

#2 HTTP Methods: GET & POST

2-1. GET

  • 서버가 가진 데이터를 조회(Read) 하기 위해 요청하는 것을 의미한다.
  • 요청한 데이터를 수정하지 않는다.
  • 요청할 데이터를 URL에 담아 전송한다. (URL 뒤 ? 이후에 key=value 형식으로 전달)
  • 같은 요청은 항상 같은 데이터를 반환한다.

 

2-2. POST

  • 사용자의 입력을 받아 데이터를 새롭게 생성(Create) 하거나 저장된 데이터를 수정(Update), 제거(Delete)를 요청하는 것을 의미한다. (보통은 그렇다.)
  • 데이터 변화가 이루어지기 때문에 같은 POST요청이라도 같은 데이터를 반환한다는 보장이 없다.
  • HTML 문서안에 위치하여 내부적으로 데이터를 전송한다.

 

2-3. 작동예시 

  • 학습중인 Flask 웹 프레임워크와 mongoDB를 통한 예시는 여기에서 확인

 

 

 

Comments