조회 수 48251 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

웹클라이언트-웹서버 간의 통신은 웹클라이언트의 요청으로 부터 시작된다.

다음은 요청에 사용되는 HTTP 포맷이다.


형태 : HTTP 요청 (Web Client; Web Browser - Web Server)

<method><resource identifier><HTTP version><crlf>
(<Header>: <value>) <crlf>
   . . . . 

(<Header>: <value>) <crlf>
<crlf>
(Entity body)




## 클라이언트가 웹서버에게 요청 하는 절차 ##


1. 웹클라이언트(브라우저)는 미리 알려진 포트(80)로 연결을 시도.

연결이 이루어지면 웹클라이언트는 HTTP 명령어, 문서주소, HTTP 버전 정보를 웹서버에 전달한다.

(예) GET  /index.html  HTTP/1.0


2. 요청라인 다음 줄에 웹클라이언트는 헤더 정보, 구성 정보(configuration information), 받아들일 문서 포맷 등의 정보를 옵션으로 웹서베에 전달한다.

모든 헤더 정보들은 한 줄에 하나씩 기술되며, 헤더 이름과 값으로 구성된다. 헤더 정보의 긑에는 공백 라인을 추가해서 헤더의 끝임을 알려준다.

(예)

User-Agent : Mozilla/2.03Gold(WinNT; I)
Accept : text/html, img/gif


3. 요청과 헤더 정보를 보낸 다음에 웹클라이언트는 추가적인 정보를 웹서버에 보낼 수 있다. 보통 이 데이터는 POST 방식으로 웹서버에 전달하기 위해서 사용된다.


웹클라이언트로부터 요청을 받은 웹서버는 요청에 맞는 적당한 작업을 수행하고, 응답을 웹클라이언트에 전달한다. 웹브라우저의 요청에 응답하는 서버의  HTTP 포맷은 다음과 같은 형태를 취한다.


<HTTP> <result code> (<explanation>) <crlf>
(<Header>: <value>) <crlf>
   . . . . 

(<Header>: <value>) <crlf>
<crlf>
(Entity body)




## 클라이언트의 요청 대한 웹서버의 응답 절차 ##


1. 서버의 응답은 HTTP 버전, 상태 코드, 설명으로 구성된 상태 라인을 이용해서 응답한다.

  - HTTP 버전 : 웹서버가 사용하는 HTTP 버전

  - 상태코드 : 클라이언트의 요청에 따른 서버의 결과를 표현하기 위한 것으로 세자리 숫자로 표현된다.

     1xx : 정보 - 요청이 받아들여졌고, 처이중임.

     2xx : 성공 - 클라이언트의 요청이 성공적으로 처리되었음.

     3xx : 경로변경 - 요청이 완전히 처리하기 위해 추가적인 액션이 수행되어야 함.

     4xx : 클라이언트 에러 - 클라이언트의 요청 문법이 틀렸거나, 요청이 처리될 수 없음.

     5xx : 서버 에러 - 정당한 요청을 서버가 처리 못함.


  - 설명 : 상태 코드를 사람이 읽을 수 있는 간단한 단어로 표시한 것.

(예) 다음의 상태코드 200은 클라이언트의 요청이 성공적임을 의미

HTTP/1.0  200  OK



2. 상태 라인 이후에 웹서버는 자신과 요청된 문서에 대한 정보를 헤더 정보를 통해서 클라이언트에 전달한다. 헤더의 끝은 빈 라인으로 표시한다.

(예)

Date : Tue, 28 Mar 2000 06:18:26 GMT
Server : Apache/1.3.9 (Unix) tomcat/1.0 PHP/3.0.12
Last-Modified : Tue, 21 Sep 1999 02:35:00 GMT



3. 클라이언트의 요청이 성공적으로 수행되었다면, 요청된 자료가 전송된다. 전송되는 자료는 파일 내용이거나, 서블릿 프로그램의 응답일 수 있다.




## 텔넷을 이용한 테스트 ##

다음과 같이 콘솔에서 Telnet 클라이언트를 이용해 HTTP 명령을 테스트할 수 있다.

HTTP의 GET 명령을 이용해 특정 위치의 리소스를 요청하면 해당 리소스(HTML 파일)를 전송한다.

[root@ns root]# telnet hooni.net 80 <┘
Trying 61.84.218.138...
Connected to hooni.net.
Escape character is '^]'.
GET  /index.html  HTTP/1.0 <┘
Accept: text/html  <┘
<┘

HTTP/1.1 200 OK
Date: Thu, 19 Sep 2002 11:08:40 GMT
Server: Apache/1.3.26 (Unix) PHP/4.2.2
X-Powered-By: PHP/4.2.2
Connection: close
Content-Type: text/html

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title>정후니네..</title>
</head>

<frameset rows="0, 1*" border="0">
    <frame noresize scrolling="no">
    <frame src="./html/main_body.php?page=main" name="real_main_frame" noresize scrolling="auto">
    <noframes>
    <body bgcolor="white" text="black">
    <p>이 페이지를 보려면, 프레임을 볼 수 있는 브라우저가 필요합니다.</p>
    </body>
    </noframes>
</frameset>

</html>

Connection closed by foreign host.



?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1157 Develop 자주 쓰는 Docker 명령어 alias hooni 2020.01.10 269667
1156 Etc 인증서 *.p12 파일을 *.pem 파일로 변환 hooni 2015.04.30 1808
1155 Etc 이클립스(Eclipse) 유용한 단축키 ㅋㅋ hooni 2013.04.23 21768
1154 Develop 이어서 작업할 내용~ secret hooni 2013.11.21 0
1153 Develop 웹페이지 성능 테스트 툴 설명 hooni 2013.04.23 27447
1152 Etc 웹 보안 논문 주제 2016 secret hooni 2016.11.28 0
1151 Etc 원어민이 매일 쓰는 일상표현 150개 file hooni 2023.09.17 1097
1150 Etc 영작 연습을 위한 실용영어 문장 1001개 (1~500) hooni 2013.06.21 30427
1149 Etc 영어의 12 시제 (The twelve tenses of English) hooni 2013.07.12 15699
1148 Etc 영어공부에 도움될만한 사이트 모음 hooni 2013.05.14 22632
1147 Etc 영어. 외우면 도움되는 필수영어회화 표현 file hooni 2013.09.09 20954
1146 Etc 영어. 불규칙 동사 정리 file hooni 2017.10.04 3517
1145 Etc 영어. 반드시 외워야 할 영어 숙어 2 file hooni 2016.07.07 6342
1144 Etc 영어. 반드시 외워야 할 문장 패턴 100개 file hooni 2023.06.08 1114
1143 Etc 영어. 반드시 외워야 할 단어 file hooni 2016.07.07 1977
1142 Etc 영어 아주 쉬운 영작문 강의 01~60 secret hooni 2013.06.25 0
Board Pagination Prev 1 2 3 4 5 ... 74 Next
/ 74