HTTP 리퀘스트 메시지를 작성한다.
탐험 여행은 URL 입력부터 시작한다.
- 브라우저는 몇 개의 클라이언트 기능을 겸비한 복합적인 클라이언트 소프트웨어
- URL의 맨 앞에 있는 문자열은 엑세스하는 방법을 나타낸다.
- 각종 URL의 형식
HTTP 프로토콜로 웹 서버에 엑세스하는 경우
http://user:password@www.cyber.co.kr:80/dir/file1.htm
user = 사용자명(생략가능)
password = 패스워드(생략가능)
www.cyber.co.kr = 웹 서버의 도메인명
:80 = 포트번호(생략가능)
/dir/file1.html = 파일의 경로명
FTP 프로토콜로 파일을 다운로드하거나 업로드하는 경우
ftp://user:password@ftp.cyber.co.kr:21/dir/file1.htm
user = 사용자명(생략가능)
password = 패스워드(생략가능)
ftp.cyber.co.kr = FTP 서버의 도메인명
:21 = 포트번호(생략가능)
/dir/file1.html = 파일의 경로명
브라우저는 먼저 URL을 해독한다.
- 브라우저가 처음 하는 일은 웹 서버에 보내는 리퀘스트의 메시지를 작성하기 위해 URL을 해독하는 것이다.
- URL의 요소
http: + // + 웹 서버명 + / + 디렉토리명 + / + .... + 파일명
웹 서버명 뒤 '/' 부터 '파일명'까지는 생략가능하다.
파일명을 생략한 경우
- 다음과 같이 ‘/’로 끝나는 URL일 경우, ‘/dir/’의 다음에 써야 할 파일명을 생략한다는 것 이다.
http://www.lab.cyber.co.kr/dir/
- 파일명을 쓰지 않으면 어느 파일에 엑세스해야 할지 모른다. 그래서 파일명을 생략할 때를 대비하여 파일명을 미리 서버측에 설정해 둔다.
http://www.lab.cyber.co.kr/dir/
=> http://www.lab.cyber.co.kr/dir/index.html 서버에 설정해둔 파일호출
- 웹서버에 ‘whatisthis’라는 파일이 있으면 파일명으로 보고, ‘whatisthis’라는 디렉토리가 있으면 디렉토리명으로 보는 것이 통례이다.
http://www.lab.cyber.co.kr/whatisthis
HTTP의 기본 개념
- URL해독 후 브라우저는 HTTP 프로토콜을 사용하여 웹 서버에 액세스를 한다.
- HTTP 프로토콜은 클라이언트와 서버가 주고받는 메시지의 내용이나 순서를 정한 것이다.
- 클라이언트에서 서버를 향해 리퀘스트 메시지(‘무엇을’, ‘어떻게 해서’)를 보낸다.
리퀘스트 메시지 : [ 메소드(어떻게 해서) | URI(무엇을) ]
- URI는 보통 페이지 데이터를 저장한 파일의 이름이나 CGI 프로그램의 파일명을 URI로 쓴다.
- http:로 시작하는 URL을 그대로도 쓸 수 있다. 엑세스 대상을 통칭하는 말이다.
- 메소드에 의해 웹 서버에 어떤 동작을 하고 싶은지를 전달한다.
- HTTP의 주요 메소드
GET | URI로 지정한 정보를 도출한다. 데이터를 그대로 반송한다. | ||
POST | 클라이언트에서 서버로 데이터를 송신한다. | ||
HEAD | GET과 비슷. HTTP 메시지 헤더만 반송하고 데이터의 내용을 돌려보내지 않는다. | ||
OPTIONS | 통신 옵션을 통지하거나 조사할 때 사용한다. | ||
PUT | URI로 지정한 서버의 파일을 치환한다. | ||
DELETE | URI로 지정한 파일을 삭제한다. | ||
TRACE | 서버측에서 받은 리퀘스트 라인과 헤더를 그대로 클라이언트에 반송한다. | ||
CONNECT | 암호화한 메시지를 프록시로 전송할 때 이용한다. |
- 리퀘스트 메시지가 웹서버에 도착하면 웹 서버는 메시지 내용을 해독한다.
- 그 후 요구에 따라 동작하고, 결과 데이터를 응답 메시지에 저장한다.
- 응답 메시지의 맨 앞부분에는 스테이터스 코드가 있다.ex) 404 Not Found
- 헤더 파일과 페이지의 데이터가 이어지고, 응답 메시지를 클라이언트에 반송한다.
- 클라이언트에게 도착하여 브라우저가 메시지의 안에서 데이터를 추출하여 화면에 표시하면서 HTTP 동작이 끝난다.