속도 < 방향

웹 브라우저가 메시지를 만든다 -1 본문

개발/네트워크

웹 브라우저가 메시지를 만든다 -1

import max 2024. 7. 10. 16:11

도서 : 성공과 실패를 결정하는 1%의 네트워크 원리 (링크)

update : 2024-07-10


01. HTTP 리퀘스트 메시지를 작성한다

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

  • URL은 http:// 로 시작하는 것 뿐만 아니라 ftp: , file: , mailto: 등 다양한 종류가 있다. 브라우저는 웹 서버에 액세스하는 클라이언트로 사용하는 경우가 많지만, 브라우저에는 파일 i/o (FTP) 클라이언트, 메일 클라이언트 기능도 있다. 즉, 브라우저는 복합 클라이언트 소프트웨어이다.
  • URL을 사용하는 법은 액세스 대상에 따라 다른데, 웹 서버나 FTP 서버에 액세스하는 경우 도메인 명이나 파일 경로를 URL에 포함시키고 메일의 경우 상대 메일 주소를 URL에 포함시킨다. 필요에 따라 사용자명, 패스워드, 서버 포트번호 등을 쓸 수도 있다.
  • 공통점: 맨 앞의 문자열이 액세스하는 방법을 나타낸다. 맨 앞 문자열은 즉 프로토콜 종류이다.

 

 

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

  • 브라우저가 처음 하는 일은 REQUEST 메시지를 작성하기 위해 URL을 해독하는 것.

3. 파일명을 생략한 경우

  • 도메인은 필수적이나 그 이하의 것은 생략이 가능한 항목이며, // 는 이후의 문자열이 서버 이름임을 나타냄
  • 만약 도메인 이하의 path 가 없다면 디렉토리가 지정되고 디폴트 파일에 접근하도록 생략한 것 일 수 있다.
    • /index.html, /default.html

4. HTTP의 기본 개념

  • HTTP 프로토콜은 클라이언트와 서버가 주고받는 메시지의 내용이나 순서를 정한 것이다.
  • 순서
    1. 클라이언트에서 서버를 향해 REQUEST 메시지를 보낸다.
    2. ‘WHAT’, ‘HOW’ 의 내용이 쓰여있으며 ‘WHAT’에 해당하는 것을 URI 라고 하는데, 보통 페이지 데이터를 저장한 파일의 이름이나 CGI 프로그램의 파일명을 URI 로 쓴다. URI 는 액세스 대상을 통칭하는 말로 보통 사용된다.
    3. ‘HOW’ 는 메소드로, 메소드에 의해 웹 서버에 어떤 동작을 하고 싶은지를 전달한다. 또, 보충 정보를 나타내는 헤더 파일이 있는 경우도 있다.
    4. 응답 메시지의 맨 앞부분에는 실행 결과가 정상 종료되었는지, 이상이 있는지를 나타내는 status code가 있다.
  • 메소드 소개
    • GET : 사용률 1위. 데이터를 읽을 때 사용된다. 최대 단위는 xxx byte 라서 초과 시 POST를 사용해야 한다.
    • POST : 사용률 2위. 폼에 데이터를 사용해서 웹 서버에 송신하는 경우에 사용된다. 주소나 이름을 입력할 때 입력 필드가 있는 페이지가 있는데, 이 입력 필드 부분이 폼이다. 사용자가 입력한 값을 데이터에 함께 넣어 전달하게 된다.
    • 대부분 GET과 POST만 있으면 페이지 데이터를 웹 서버에서 읽거나 보내는 것이 가능하다.

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

  • 리퀘스트 메시지의 첫번째 리퀘스트 라인을 쓰는데, 맨 앞에 있는 메소드가 중요하다.
  • URl 입력 상자에 URL을 입력하면 해당 페이지를 표시하므로 GET 메소드를 사용한다.
  • 폼의 경우 HTML 소스코드에 어느 메소드를 사용하여 request를 보낼 것인지 지정 후 get, post 구분하여 사용한다.
    • 리퀘스트 라인
      • method /URI/directory/…./file HTTP/1.1
      • 메소드 뒤에 한 칸 띄우기 + 파일명 뒤에 한칸 띄우고 HTTP/버전
    • 메시지 헤더
      • 데이터 종류, 언어, 압축 형식, 유효기간, 소프트웨어 버전 등등 부가적인 정보
      • 메시지 헤더 뒤에 공백 행 , 송신할 데이터를 씀 : (메시지 본문)

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

  • 메시지를 보내면 응답 메시지가 되돌아오는데, 응답 메시지의 포맷도 리퀘스트 메시지와 비슷하다. 주로 문장으로 작성되어 있으며, 실행 결과를 알리는 것이 목적이다.
  • 영상 등을 포함한 경우에는 영상 파일을 나타내는 태그라는 정보가 포함되어 있으므로 화면에 문장을 표시할 대 태그를 탐색한다. 그리고 태그를 만나면 영상용 공백을 비워두고 영상을 표시한다.
  • 리퀘스트 메시지의 URI 갯수는 1개로 고정되어 있으므로 한 번에 파일을 한 개씩만 따로따로 읽을 수 있다. 예를 들어 문장 한 개에 3개의 영상이 있다면 문장 request, 영상 request 총 4회의 메시지를 웹 서버의 보낸다. 복수의 파일을 읽을 때에는 웹 서버에 별도의 리퀘스트 메시지를 보낸다.
  • 필요한 파일을 판단하고 읽고 레이아웃을 정해서 화면에 표시하는 것이 브라우저의 역할이다. 한 개의 리퀘스트에 대해 한 개의 응답만 돌려보낸다.