말랑말랑 LAB

[네트워크] HTTP 리퀘스트 메시지 작성 본문

Network

[네트워크] HTTP 리퀘스트 메시지 작성

쭈02 2018. 12. 17. 14:14

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


** 아래 책의 내용을 정리한 것

http://www.yes24.com/24/goods/3246410



1. URL(Uniform Resource Locator) 입력부터 시작한다


  • htttp: 뿐만 아니라 ftp:, file:, mailto: 등 여러 가지의 URL이 존재
  • 브라우저의 기능은 웹 서버에 접근하는 클라이언트 용도만 있는 것이 아님 !!
    • 파일 다운/업로드 - FTP의 클라이언트 기능
    • 메일 클라이언트 기능
  • 즉, 브라우저는 몇 개의 클라이언트 기능을 겸비한 복합적인 클라이언트 소프트웨어
  • 웹 서버에 액세스하는 경우
    • HTTP 프로토콜 사용
    • 서버의 도메인명이나 액세스하는 파일의 경로명 등을 URL에 포함시킴
    • 사용자명, 패스워드, 포트 번호는 생략 가능
2. 브라우저는 먼저 URL을 해독한다

  • URL 요소를 따로따로 분해한 다음, 해당 경로의 파일에 액세스
3. 파일명을 생략한 경우

  • 파일명을 생략할 수 있지만, 어느 파일에 액세스해야 할지 모르게 됨
  • 서버측에서 미리 파일명이 생략된 경우 index.html 과 같은 파일명을 설정해둠
4. HTTP의 기본 개념

  • HTTP 프로토콜은 클라이언트와 서버가 주고받는 메시지의 내용이나 순서를 정한 것
    1. 먼저 클라이언트에서 서버를 향해 request 메시지를 보냄
      • request 메시지: '무엇을' '어떻게 해서(GET, POST 등)' 하겠다는 내용
    2. 메시지가 웹 서버에 도착하면 웹 서버는 그 메시지의 내용을 해독
    3. '무엇을' '어떻게 하는지' 판단한 후 요구에 따라 동작하고, 결과 데이터를 응답 메시지에 저장
    4. 응답 메시지 앞부분에는 실행이 정상적으로 수행되었는지 여부를 나타내는 스테이터스 코드가 있음
    5. 헤더 파일과 페이지의 데이터가 이어지고, 이 응답 메시지를 클라이언트에 반송
    6. 클라이언트에서 브라우저가 메시지 안에서 데이터를 추출하여 화면에 표시
    7. HTTP 동작 끝
5. HTTP 리퀘스트 메시지를 만든다

  • HTTP 메시지는 포맷이 정해져 있으므로, 브라우저는 이 포맷에 맞게 리퀘스트 메시지를 만듦
6. 리퀘스트 메시지를 보내면 응답이 되돌아온다

  • 리퀘스트의 실행 결과(정상 종료/오류 발생 등)를 숫자로 알려주는 스테이터스 코드와 응답 문구(문장)를 첫 번째 행에 써야 함
  • 영상이 포함된 경우, 문장 안에 영상 파일을 나타내는 태그(ex <img src="image1.jpg">)가 포함됨
    브라우저는 화면에 문장을 표시할 때 태그를 탐색 -> 태그를 만나면 그곳에 영상용 공백을 비워두고 문장 표시
    -> 다시 한 번 웹 서버에 액세스하여 태그에 쓰여있는 영상 파일을 웹 서버에서 읽어와서 비워 둔 공백에 표시