1. HTTP 개관

Geunho Hong·2020년 6월 26일
1

1.1 HTTP: 인터넷의 멀티미디어 배달부

● HTTP는 신뢰성 있는 전송 프로토콜을 사용한다  
● 데이터 손상을 걱정하지 않아도 된다  

1.2 웹 클라이언트와 서버

  • 웹 서버는 HTTP 프로토콜로 의사소통한다
1. 웹 브라우저는 HTTP 요청을 서버에게 보낸다.  
2. 서버는 요청받은 객체를 찾고, 타입,길이 등의 정보를 HTTP 응답에 담아 
   클라이언트에 보낸다.

1.3 리소스

  • 웹 서버는 웹 리소스를 관리하고 제공한다.
  • 반드시 정적파일이 아니여도 상관없고 어떤 종류의 콘텐츠 소스도 리소스가 될 수 있다.

1.3.1 리소스 타입

  • 모든 HTTP 웹 전송 객체에 'MIME' 이라는 타입을 붙인다.
  • MIME 타입을 통해 다룰수 있는 데이터인지 확인한다.

1.3.2 URI

  1. HTTP 프로토콜을 사용하라
  2. www.joes-hardware.com 서버로 이동하라.
  3. /specails/saw-blade.gif 리소스를 가져와라

1.3.3 URL과 URN

  • URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 의미한다.
    ex) 프로토콜/호스트명:포트번호/리소스 위치
  • URN은 리소스의 위치에 영향 받지 않고 이름 역할을 한다.

1.4 트랜잭션

  • HTTP 트랜잭션은 요청과 응답 메세지로 구성되어 있다.

1.4.1 메서드

  • GET : 서버에서 클라이언트로 지정한 리소스를 보내라. (문서를 가져옴)
  • PUT : 클라이언트에서 서버로 보낸 데이터를 지정한 이름의 리소스로 작성하라.
  • DELETE : 지정한 리소스를 서버에서 삭제하라.
  • POST : 서버에서 처리할 데이터를 담아 보낸다.
  • HEAD : 지정한 리소스 응답에서 , HTTP 헤더만 담아 보낸다.
  • '웹 페이지' 는 하나의 리소스가 아닌 리소스들의 모음이다.


1.5 메세지

  • (Client -> Server) 요청 메세지 , (Server -> Client) 응답 메세지
  • 목록
    • 시작줄 : 메세지의 첫 줄, 요청 이라면 무엇을 할지, 응답 이라면 무슨 일이 일어났는지를 나타낸다.
    • 헤더 : 하나의 이름과 하나의 값으로 구성.
    • 본문 : 어떤 종류의 데이터든 들어갈 수 있는 메세지 본문



1.6 TCP 커넥션

1.6.1 TCP/IP

  • 신뢰성 있는 인터넷 전송 프로토콜 TCP/IP
    • 오류 없는 데이터 전송
    • 순서에 맞는 전달
    • 조각나지 않는 데이터 스트림
  • TCP 커넥션이 맺어지면 오류 없는 데이터 전송을 보장한다.

1.6.2 접속, IP 주소 그리고 포트번호

  • HTTP 클라이언트가 메세지를 전송할 수 있기 전 주소와 포트번호를 사용해 클라이언트와 서버 사이에 TCP/IP 커넥션을 맺어야 한다.
  • TCP 에서는 IP 주소와 실행 중인 프로그램이 사용중인 포트번호가 필요하다.
(1) 웹 브라우저는 서버의 URL에서 호스트 명을 추출한다.  
(2) 웹 브라우저는 서버의 호스트 명을 IP로 변환한다.  
(3) 웹 브라우저는 URL에서 포트번호를 추출한다 (기본 80)  
(4) 웹 브라우저는 웹 서버와 TCP 커넥션을 맺는다.  
(5) 웹 브라우저는 서버에 HTTP 요청을 보낸다.  
(6) 서버는 웹 브라우저에 HTTP 응답을 돌려준다.  
(7) 커넥션이 닫히면 웹 브라우저는 문서를 보여준다.  

1.8 웹의 구성요소

   ● 프락시 : 클라이언트와 서버 사이에 위치한 HTTP 중개자
   ● 캐시 : 많이 찾는 웹 페이지를 클라이언트 가까이 보관하는 HTTP 창고
   ● 게이트웨이 : 다른 애플리케이션과 연결된 특별한 웹 서버
   ● 터널 : 단순히 HTTP 통신을 전달하기만 하는 특별한 프락시

0개의 댓글