1. 클라이언트와 서버
(1) 클라이언트 (client)
- 서비스를 요청하는 쪽
- 서버와 이어진 모든 기기 (컴퓨터의 경우 WIFI/ 모바일은 모바일 네트워크)와 단말기에서 이용하는 웹에 접근하는 SW이며, 주로 서버에 요청을 보내고 응답을 받는 역할을 한다.
(2) 서버 (server)
- 서비스를 제공하는 쪽
- 다수 클라이언트에게 서비스를 제공하기 때문에 고사양의 하드웨어를 갖춘 컴퓨터이지만, 하드웨어의 사양으로 서버와 클라이언트를 구분하는 것은 아니며, 사양의 관계없이 서비스를 제공하는 소프트웨어가 실행되는 컴퓨터를 서버라고 한다.
(3) 서비스 (service)
- 서버는 클라이언트로부터 요청을 받아 응답을 내려주고 클라이언트는 서버에 데이터를 요청하고 응답을 받는다.
- 서비스의 종류에 따라 파일 서버/ 메일 서버/ 어플리케이션 서버 등으로 나눠진다.
2. 애플리케이션과 웹 애플리케이션
(1) 애플리케이션
- 응용프로그램
- 즉, 프로그래밍 언어로 작성한 소프트웨어
(2) 웹 애플리케이션
- 웹 응용 프로그램
- 인터넷을 통해 사용되는 응용 프로그램
- 검색 엔진, e-커머스, e-러닝 등 많은 응용 프로그램이 웹 응용 프로그램으로 세상에 제공되고 있다.
3. 웹 서버와 웹 브라우저
(1) 웹 서버 (Web Server)
- 웹 애플리케이션을 배포하는 서버
- 웹 서버는 항상 실행되며 클라이언트로부터 액세스(요청)을 계속 기다린다.
- 웹 서버에 각종 정보를 담은 웹 페이지를 저장한 후 이러한 서버의 웹 페이지를 요청하는 클라이언트에게 제공한다. 구글, 네이버 등 수많은 회사들이 웹 서버를 만들어 웹서비스를 제공하고 있다.
(2) 웹 브라우저 (Web Browser)
- 인터넷을 사용할 때 이용하는 소프트웨어
- 웹 서비스 사용자는 웹 브라우저라는 전용 클라이언트 어플리케이션으로 웹 서버가 제공하는 서비스를 이용한다. 웹 브라우저가 웹 서버에게 필요한 페이지를 요청하면 웹 서버가 이에 대해 응답해 웹 페이지를 보내주고 웹 브라우저가 아닌 이 웹 페이지를 받아 사용자에게 보여주는 역할
- 대표적인 브라우저
- 구글 크롬 (Google Chrome), 파이어 폭스 (Firefox), 마이크로소프트 엣지 (Microsoft Edge), 인터넷 익스플로러 (Internet Explorer), 사파리 (Safari)
4. HTTP 통신 (프로토콜)
HTTP 에서는 클라이언트가 서버에 요청 메시지를 보내고 이에 대해 서버가 응답 메시지를 반환한다.
클라이언트와 웹 서버는 HTTP 요청(request)과 HTTP 응답(response)으로 상호작용한다.
이를 HTTP 통신이라고 한다. 클라이언트의 요청에 대해 웹 서버가 응답하게 된다.
- 클라이언트가 브라우저에 URL을 입력한다.
- 클라이언트에서 웹 서버로 HTTP 요청이 전송된다.
- 웹 서버는 HTTP 요청을 받아 HTTP 요청에 해당하는 HTTP 응답을 클라이언트에게 반환한다.
- 브라우저는 받은 응답을 표시하고 클라이언트가 이를 확인한다.
5. HTTP 요청 메소드 ( GET, POST )
HTTP 요청 메소드란?
클라이언트가 웹 서버에게 사용자 요청의 목적/종류를 알리는 수단이다.
최초에 HTTP에서는 GET 메소드 하나밖에 존재하지 않았고, 당시 서버로부터의 응답은 무조건 HTML 문서였다.
5.1 GET
- 리소스를 검색하고, 반환받기 위해 사용되는 메소드
- 원하는 정보를 서버에 요청할 때 사용
- 브라우저에서 웹 서버로 값을 전달할 때 URL 뒤에 값을 더하여 보내는 방식
- URL 뒤에 오는 정보를 '쿼리 스트링 (query string)' 또는 '쿼리 문자열'이라고 한다.
- 리소스의 위치를 URL에서 쿼리로 표현하기 때문에 Request Body가 없다.
5.1.1 쿼리 스트링의 특징
1. URL 끝에 '?'가 붙어 쿼리 스트링의 시작을 나타낸다.
- ex) domain.com/?
2. 형식은 '이름 = 값'이다.
- ex) domain.com/?name=value
3. 여러 값을 전달하려고 하면 '&' 로 연결한다.
- ex) domain.com/?name=value&tel=010
https://www.google.com/search?q=http+통신&oq=http+통신&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQABiABDIHCAIQABiABDIHCAMQABiABDIMCAQQABgUGIcCGIAEMgcIBRAAGIAEMgwIBhAAGBQYhwIYgAQyBwgHEAAYgAQyBwgIEAAYgAQyBwgJEAAYgATSAQ8xMTE0NDU4NDk2ajBqMTWoAgCwAgA&sourceid=chrome&ie=UTF-8
구글에 'http 통신'이라는 키워드로 검색했을 때 나오는 url이다.
위와 같이 주소 표시줄에서 쿼리 스트링을 볼 수 있다.
하지만 쿼리 스트링은 많은 양의 값을 보내기에 적합하지 않다!
5.2 POST
- 브라우저로부터 웹 서버에 값을 보낼 때 ‘요청 본문(request body)’라고 하는 URL에 보이지 않는 장소에 값을 넣어서 보내는 방법
- POST로 정보를 전송하면 URL에 파라미터가 나타나지 않으므로 각종 데이터를 전송하는 데 쓰인다.
- POST 사용 상황 예시
- e-커머스 사이트 등에서 개인정보를 등록할 때 입력한 내용을 URL에 표시하고 싶지 않을 경우
◼ 스프링 프레임워크 첫걸음 관련 게시글 더보기
스프링 프레임워크 첫걸음 - YES24
세상에서 가장 친절한 스프링 프레임워크 입문서! 스프링 프레임워크는 전 세계적으로 가장 널리 사용되는 오픈소스 자바 애플리케이션 프레임워크다. 이 책에서는 스프링 프레임워크를 처음
www.yes24.com