기록장

성공과 실패를 결정하는 1%의 네트워크 원리 | 01. HTTP 리퀘스트 메시지를 작성한다

nolzaheo 2021. 2. 22. 22:44
728x90

01. HTTP 리퀘스트 메시지를 작성한다 p.36-55

1. 탐험 여행은 URL 입력부터 시작한다

URL 종류는 다양하다. ex) http, file, fts, mailto..

 

브라우저는 몇 개의 클라이언트 기능을 겸비한 복합적인 클라이언트 소프트웨어이다.

브라우저 기능은 단순히 웹 서버에 액세스하는 클라이언트로만 사용되는 것이 아니라,

파일을 다운로드/업로드하고, 메일을 송,수신하는 다양한 기능을 갖고있다.

따라서 이 다양한 기능 중 어느 것을 사용하여 데이터에 액세스할 것인지 판단하는 재료가 필요하다.

 

상황에 따라 URL을 쓰는 방법이 다르다.

ex) HTTP 프로토콜로 웹 서버에 액세스 하는 경우

http://user:password@www.cyber.co.kr:80/dir/file1.htm 

 

ex) 메일을 송신하는 경우

mailto:tone@cyber.co.kr

 

ex) 뉴스 그룹의 기사를 읽는 경우

news:comp.protocols.tcp-ip

 

URL들은 모두 공통적으로 맨 앞에 http,fts와 같은 문자열을 갖고있다. 이는 데이터에 액세스 하는 방법을 나타낸다. 즉, 이들은 프로토콜의 종류이다.

 

2. 브라우저는 먼저 URL을 해독한다

URL의 요소

http: + // + 웹 서버명 + / + 디렉토리명 + / + ··· + 파일명

 

         : 데이터 출처에 액세스하는 방법, 즉 프로토콜

         : 나중에 이어지는 문자열이 서버의 이름임을 나타냄

         : 웹 서버명

         : 데이터 출처(파일)의 경로명, 생략가능

 

ex) http://www.lab.cyber.co.kr/dir1/file1.html

 

3. 파일명을 생략한 경우

http://www.lab.cyber.co.kr/dir/ 

위와 같이 /로 끝나는 URL을 볼 수 있는데, 이는 파일명을 쓰지 않고 생략하는 것이다. 이와 같이 파일명을 생략할 수 있다.

서버는 이처럼 파일명을 생략할 때를 대비하여 파일명을 미리 서버측에 설정해둔다.

 

4. HTTP의 기본 개념

브라우저는 HTTP 프로토콜을 사용하여 웹 서버에 액세스한다.

HTTP 프로토콜클라이언트와 서버가 주고받는 메세지의 내용이나 순서를 정한 것이다.

 

리퀘스트 메시지 안에는 '무엇을' 어떻게' 하겠다는 내용이 들어있다.

'무엇을' : URI, 액세스 대상

'어떻게' : 메소드, 어떤 동작을 하고싶은지

 

리퀘스트 메시지를 보내면 응답 메시지가 돌아오는데, 응답 메시지의 맨 앞부분에는 실행 결과가 정상 종료되었는지 또는 이상이 발생했는지를 나타내는 스테이터스 코드가 있다.

 

5. HTTP 리퀘스트 메시지를 만든다

리퀘스트 메시지는 리퀘스트 라인, 메시지 헤더, 메시지 본문으로 구성되어있다.

리퀘스트 메시지의 첫 번째 행을 리퀘스트 라인이라고 하는데, 이 한 행으로 리퀘스트의 내용을 대략 알 수 있다. 리퀘스트 라인에서 중요한 것은 맨 앞에 있는 메소드이다. 웹 서버에 어떻게 할 것인지를 나타내기 때문이다.

메시지 헤더는 리퀘스트의 부가적인 정보를 나타낸다. 한 행에 한 개의 헤더 필드를 쓴다. 행 수는 상황에 따라 달라지며 리퀘스트 라인 다음 행부터 공백 행 까지가 메시지 헤더에 해당한다. 날짜, 클라이언트 측이 취급하는 데이터의 종류, 언어, 압축 형식, 데이터의 유효 기간, 최종 변경 일시 등 다수의 항목이 사양으로 정해져있다.

메시지 본문은 클라이언트에서 서버에 송신하는 데이터, 폼 페이지에 입력한 데이터 등의 내용을 담고있다.

 

6. 리퀘스트 메시지를 보내면 응답이 되돌아온다

위와 같이 메시지를 보내면 웹 서버에서 응답 메시지가 되돌아온다. 응답 메시지의 첫 번째 행에는 리퀘스트의 실행 결과를 나타내는 스테이터스 코드응답 문구가 적혀있다. 스테이터스 코드는 숫자로, 응답 문구는 문장으로 쓰여져있다. 응답 메시지가 되돌아오면, 그 때부터 데이터를 추출한 후 화면에 표히사여 웹 페이지를 눈으로 볼 수 있다. 

 

리퀘스트 메시지에 쓰는 URI('무엇을'에 해당)는 한 개만으로 결정되어 있으므로 파일을 한 번에 한 개씩만 읽을 수 있기 대무에 파일을 따로따로 읽어야한다.

ex) 한 문장에 3개의 영상이 포함되어있는 경우 : 문장 1 + 영상 3 = 총 4회의 리퀘스트 메시지

 

이렇게 필요한 파일을 판단하고 이것을 읽은 후 레이아웃을 정하여 화면에 표시하는 상태로 전체의 동작을 조정하는 것도 브라우저의 역할이다.

 

 

728x90