클라이언트와 서버

배지원·2022년 10월 24일
0

SPRING

목록 보기
3/4

1. 클라이언트와 서버

  • 클라이언트 : 서비스를 요청하는 애플리케이션으로 사용자의 입력을 수행하고, 서버에 대한 응답으 화면에 표시한다.
  • 서버 : 서비스를 제공하는 애플리케이션으로 페이지의 지원이나, 공유 데아터의 처리 및 저장 등의 비즈니스 로직을 수행하며 DB와 커뮤니케이션을 수행한다.

2. HTTP통신

  • HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다.

프로토콜

  • 서로간의 통신을 위한 약속, 규칙
  • 주고 받을 데이터에 대한 형식을 정의한 것
  • 상태를 유지하지 않는다(같은 클라이언트가 2번 연속으로 같은 값을 보내고 이전값은 누가 보냈는지 알 수 없음, 이를 위해 쿠키/세션을 사용하여 상태를 유지시킬수 있음)

특징

  1. Client의 요청(Request)이 있을 때만 서버가 응답(Response)하는 단방향 통신이다.
  2. connectionless, 즉, 계속해서 서버와 브라우저가 연결되어 있지는 않다. 서버는 클라이언트가 요청한 정보를 전송하고 곧바로 연결을 종료한다. 이는 쿠키, 세션, 토큰등을 통해 독립적 요청에 대한 연결을 유지하는 방법이 있다.
  3. 서버가 요구하는 API에 맞게 요청해야 응답을 받을 수 있다.

대표적인 Request Method

  1. GET
  • 필요한 resource를 요청하여 받는 것으로 DB에는 변동이 없다.(값을 받을때)
  • Body가 없기 때문에 URL 마지막에 값을 붙여 보낸다.
  1. POST
  • 서버에 resource를 보내면서 생성해 달라고 요청.(값을 보낼때)
  • 데이터를 Body에 넣어서 보낸다
  1. PUT : 서버에게 resource의 업데이트 하거나 resource가 없다면 새로운 resource를 생성해 달라고 요청.
  2. DELETE : 서버에게 resource의 삭제 요청.

구조

?year=2021&month=10&day=1
---
String year = request.getParameter("year"); 	// getparameter를 통해 값을 가져올 수 있다.
String month = request.getParameter("month");

Iterator enum = request.getParameterNames();	// Iterator를 통해 모든 이름의 값을 받아 올 수 있다.
Map paramMap = request.getParameterMap();	// 맵을 통해 key와 value를 저장할 수 있다.
?year=2021&year=2020&year=2021
---
String[] years = request.getParameterValues("year"); 	// 같은 키값을 가지는 데이터는 배열로 저장이 가능함

응답 메세지

1xx 메시지 : 정보 교환
2xx 메시지 : 성공(정상작동)
3xx 메시지 : 다른 URL 요청
4xx 메시지 : 클라이언트 에러
5xx 메시지 : 서버 에러

※ 2~5번까지 메시지 잘 알고 있기, 웹 페이지 구현하는데 많이 발생하는 오류 메세지임


3. WAS(예.Tomcat)

  • 인터넷 상에서 HTTP 프로토콜을 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로, 주로 동적 서버 컨텐츠를 수행하는 것으로 웹 서버와 구별이 되며, 데이터베이스 서버와 같이 수행
  • 웹 서버 단독으로 처리할 수 없는 데이터베이스의 조회나 다양한 로직 처리가 필요한 동적 컨텐츠를 제공함



참고자료 : https://medium.com/@lidiach217/web-%EA%B8%B0%EB%B3%B8%EA%B0%9C%EB%85%90-http-%ED%86%B5%EC%8B%A0-cf5f89906c8e

profile
Web Developer

0개의 댓글