상세 컨텐츠

본문 제목

[서버프로그래밍] 2-1. 웹 서버와 클라이언트

Backend/서버프로그래밍

by 사랑짱 2021. 6. 20. 18:01

본문

 

 

클라이언트 - 서버의 관계

 

출처 : 차세대 웹프로그래밍

 

- 클라이언트 : Request를 보내고 Response를 받는 프로그램

- 웹 브라우저 : 웹 서버로부터 받은 HTML 문서나 파일을 웹 페이지에 출력하는 소프트웨어

(Ex. 인터넷 익스플로러, 모질라 파이어폭스, 오페라, 사파리, 크롬 등 URL을 통해 접근가능)

- 웹 서버 : 클라이언트로부터 HTTP 요청(Request)을 받아 웹 페이지(Response)를 전송해주는 서버

 

※ 웹 브라우저의 기능

- 웹 페이지 탐색

- 접속하는 프로그램의 주소 관리

- 웹 페이지의 저장, 인쇄, 소스 파일 보기

- 웹 페이지 보안에 관련한 필터 도구 제공

 

※ 웹 서버의 기능

(1) 리스너 기능 : 클라이언트로부터 접속이 있는지 항상 체크하고 대기

(2) 답변 기능 : 요청한 사항을 처리 후 결과를 클라이언트에게 보내기

 

 

클라이언트와 웹 서버의 환경

- 클라이언트 환경 : 태블릿 PC, 스마트 폰, 스마트 TV, PC환경 등

- 웹 서버 환경 : 웹 서버, 서버 프로그램, 데이터베이스

 

(1) 웹 서버

- 클라이언트의 요청에 따라 서버에 있는 정적인 데이터를 제공하며 HTTP를 통해 클라이언트와 대화

- 웹서버의 종류 : 아파치 HTTP 서버, IIS 웹서버, 엔진 X, 라이티, 아파치 톰캣 서버 등

 

(2) 서버 프로그램(WAS)

- 클라이언트에게 받은 동적인 데이터 요청을 처리/응답하는 프로그램
- JSP, ASP, PHP 등 중 JSP가 가장 많이 사용(자바 기반)
(+). 최근 서버의 성능을 고려하여 클라이언트 프로그램에서 처리를 함께 수행하도록 하기도 함!

 

(3) 데이터베이스 접속 API

- JDBC : 자바 기반의 웹프로그램이 쉽고 빠르게 접속하여 데이터를 조회/저장하도록 함.
- ODBC : DBMS 종류에 관계없이 접근 가능하여 사용(마이크로소프트 개발)

 

 

HTTP Request / HTTP Response 구조

웹 브라우저(클라이언트)와 웹 서버는
아래와 같이 일정한 형식으로 요청과 응답을 주고 받는다.

 

 

HTTP Header에는 요청/응답 정보와 본문(Body)이 포함된다.

 

※ HTTP Request 구조

- 요청 라인(Request Line) : Http method / URI / ProtocolVersion (가장 중요함!!)

HTTP 메서드 방식 및 요청 URL과 프로토콜 정보

 

- 요청 헤더(Request Header) 웹 브라우저 정보, 언어, 인코딩 방식, 요청 서버 정보 등과 같은 추가 정보

 

- 요청 본체(Request Body) : 영역에 제한이 없다!

요청에 필요한 내용, 일반적으로 HTML 폼 태그안에 입력된 값들인 파라미터 정보

 


※ HTTP Response 구조

- 상태 라인(Status Line)응답 상태 코드 및 프로토콜 정보

 

- 응답 헤더(Response Header)응답처리 날짜, 인코딩 방식, 요청 서버 정보 등과 같은 추가 정보

 

- 응답 본체(Response Body)응답에 필요한 내용을 갖는다. (일반적으로 HTML 문서)

 

관련글 더보기