Categories
자바

JSP 웹용어

서버Server와 클라이언트(Client)

내 컴퓨터를 이용하지 않고 다른 컴퓨터를 이용하여 문제를 해결한다고 가정해보자. 그리고 ’10+20’을 구한다고 할 때 숫자와 ‘,’ 만 사용하는 규칙을 만들었다고 해보자. 10+20을 10, 20, 101로 만들어 다른 컴퓨터에 보내면, B에서는 규칙1을 보고 10+20의 값을 구하게 된다. 10+20=30을 해결한 후 규칙2를 이용하여 30, 5를 A에게 돌려보내면 10+20은 30이라는 값이 도출되어 문제가 해결되었다는 사실을 알 수 있다. 문제를 해결해 달라고 요청하는 쪽이 클라이언트, 문제를 해결해서 돌려보내는 쪽이 서버다. 클라이언트가 서버에게 문제를 해결해달라고 요구하는 행위는 요청(Request)이라고 한다. 반대로 서버가 문제를 해결해서 클라이언트에게 보여주는 행위는 응답(Response)이다. 따라서 웹 브라우저가 클라이언트이고, 웹 서버는 서버라 할 수 있다. 웹 브라우저를 이용하여 서버에게 홈페이지 주소를 요청하면 서버는 웹브라우저에게 해당 홈페이지를 보여주도록 응답한다. 10+20을 10, 20, 101로 바꿔서 보내는 것과 10, 20, 101을 10+20으로 다시 바 꾼 후 계산해 30을 얻는 과정은 전송 시의 문제를 제거할 수 있다. 같은 방법으로 10+20의 결과를 돌려보낼 때 30, 5를 사용하면 클라이언트 쪽에서는 규약을 지킨 연산결과가 30이고, 제대로 도출되었다는 점을 알 수 있다. 이처럼 클라이언트와 서버 간 전송을 위한 규약이 프로토콜이다. 또한 30, 5의 5처럼 서버 쪽에서 문제 를 제대로 해결했는지 실패했는지에 따라 약속된 값을 클라이언트로 보낼 수 있는 데 이를 응답 상태코드(status code)라고 한다. 웹 서버는 서버쪽 컴퓨터에 있는 소프트웨어다. 클라이언트의 요청을 받아서 웹페이지(HTML, CSS, 자바스크립트 등으로 구성된 문서)를 클라이언트인 웹 브라우저에 응답하는 역할을 한다. 웹은 World Wide Web의 줄임말로 문서들이 인터넷으로 연결된 컴퓨터 세계를 말한다. 하이퍼텍스트(hypertext)는 글자뿐 아니라 그림처럼 보여줄 수 있는 내용물을 컴퓨터 사용자가 마우스나 키보드 입력으로 요청할때 바로 접근하고 사용할 수 있는 문서다. 웹 페이지는 웹에서 인터넷으로 연결되어 다른 웹 페이지로 자유롭게 이동하고 연결되어야 하는 문서이므로 하이퍼텍스트로 만들어진다. 웹 서버에서 서버, 클라이언트 사이에 커뮤니케이션을 할 수 있도록 만든 규약이다. HTTP는 헤더와 바디로 구성된다. HTTP의 요청과 응답에는 메시지가 포함되어 요청과 응답에 대한 상태를 알 수 있게 한다. 서버는 요청 헤더 메시지를 읽고 클라이언트의 요청 사항을 파악한 다음 클라이언트에게 응답을 보낸다. 응답헤더에는 요청이 제대로 처리되었는지, 응답해주는 서버의 간단한 정보, 응답 내용의 타입 및 인코딩, 응답 크기 등이 포함된다. 응답헤더가 브라우저에게 전달되면 응답바디 내용이 브라우저에 출력된다. 헤드와 바디 사이에는 한 줄 이 비어있으므로 쉽게 구분할 수 있다. 요청 메시지의 첫 줄에 요청라인이 있고 2번째 줄부터 다음과 같은 헤더내용이 있다. “Accept:image/jpeg, / Accept-Language: ko-KR” 헤더가 끝나면 한 줄이 비어있다. 요청의 GET 방식은 바디가 없어서 한 줄이 비어 있는 상태로 끝나지만, POST 방식일 때 파라미터가 있다면 빈줄 밑에 파라미터가 들어간다. 응답 메시지는 ‘HTTP/버전 응답상태코드 상태’를 반환하고 다음 줄은 서버, 컨텐트타입, 응답크기, 응답시간 등을 보여준다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다