1.1 HTTP (Hypertext Transfer Protocol)

전 세계의 웹 브라우저, 웹 서버 , 웹 어플리케이션은 모두 HTTP를 통해 서로 통신한다.

현대 인터넷의 '공용어'라고 볼 수 있다.

 

1.2 웹 클라이언트와 서버

웹 콘텐츠는 웹 서버에 존재하고,

웹 클라이언트는 원하는 웹 콘텐츠를 얻기위해 서버에게 HTTP요청을 보내고

서버는 HTTP 응답으로 반환함으로써 요청한 데이터를 제공한다.

 

1.3 리소스 

웹 서버는 웹 리소스를 관리하고 제공하며, 웹 리소스는 웹 콘텐츠의 원천이다.

리소스는 이미지나, 텍스트와 같은 정적 파일 뿐만아니라, 동적인 콘텐츠도 모두 리소스이다. 

예를들어 인터넷 검색 엔진 또한 리소스라고 할 수 있다.

 

 1.3.1 미디어 타입

미디어에 대한 타입 구분을 위해

MIME 타입이라는 (다목적인터넷 메일 확장: Multipurpose Internet Mail Extenshions) 데이터 포맷 라벨을 이용한다.

원래 예전에 서로 다른 메일 시스템 사이에서 메시지를 주고받을때 겪는 문제점 해결을 위해 나온 기술인데, 이메일에서 워낙 잘 동작했기에, HTTP 통신에서 미디어 타입 구분을 위해 채택되었다. 

 

슬래시(/)로 구분된 주 타입과 부 타입으로 구성된다. 

Content-type: image/jpeg

Content-type: image/png

Content-type: text/html 

 

 

 1.3.2 URI (Uniform Resource Identifier)

통합 자원 식별자. (인터넷 주소)

웹 서버의 리소스는 모두 이름을 갖고 있고, 클라이언트는 인터넷 주소를 통해 특정 리소스를 고유하게 식별하고 위치를 지정할 수 있다.

 URI에는 두 가지가 있는데 그것이, URL과 URN이다.

 

 1.3.3URL (Uniform Resource Locator) 

 통합 자원 지시자. 특정 서버의 리소스에 대한 구체적인 위치를 서술한다.

오늘날 대부분의 URI는 URL이다.

예를들어 http://www.yahoo.com/image/logo.gif  

 

스킴이라고 불리는 프로토콜(http://) 부분과 서버의 인터넷 주소(www.yahoo.com), 그리고 리소스를 가리키는 (image/logo.gif) 세가지 부분으로 구성된다. 

 

 1.3.4.URN (Uniform Resource Name)

 통합 자원 이름. 리소스에 대해 위치에 영향을 밪지 않는 유일무이한 이름 역할을 한다.  

위치 독립적이여서 위치를 바꾸더라도 정상적으로 동작한다. But, 아직 실험중이고 인프라가 충분하지 않아 널리 채택되지 않았다.

 

1.4 트랜잭션

 HTTP요청 명령과 HTTP 응답 결과로 구성된다.

 

 1.4.1 메서드

  모든 HTTP 요청 메시지는 한 개의 요청 메서드를 갖는다.

GET, POST, DELETE, PUT, HEAD 5가지가 있다.

  

 1.4.2 상태코드 

 모든 HTTP 응답은 상태코드와 함께 반환된다.

  200 정상, 4## 클라이언트 오류, 5## 서버 오류

 

1.5 메시지

HTTP요청과 응답 메시지의 구조는 크게 세가지로 나뉘어진다. 

 -시작줄 : 요청에 대한 내용이나, 응답인 경우 HTTP 응답 결과에 대한 상태코드를 담는다.

 - 헤더 : 헤더는 콜론(:)으로 구분되어 하나의 이름과 하나의 값으로 구성된다.요청에 대한 인코딩 정보나 응답시 미디어 타입에 대한 MIME 타입이 있다.

 - 본문 : 요청의 본문은 클라이언트로 부터 데이터를 실어보내며, 응답의 본문은 클라이언트로 데이터를 반환한다.

 

1.6 TCP 커넥션

 1.6.1 TCP/IP

HTTP는 어플리케이션 계층의 프로토콜이며, 전송과 네트워크 계층의 프로토콜은 TCP/IP이다.

TCP가 다음을 제공한다.

 - 오류 없는 데이터 전송

 - 순서에 맞는 데이터 전달 (항상 보낸 순서대로 도착)

 - 조각나지 않는 데이터 스트림(언제든 어떤 크기로든 보낼수 있다)

 

TCP/IP는 어떤 네트웤이나 하드웨어에 상관없이, 신뢰성있는 의사소통을 제공해주는 패킷 교환 네트워크 프로토콜의 집합이다. 

 

일단 TCP 커넥션이 맺어지면, 클라이언트와 서버 컴퓨터 간에 교환되는 메시지가 없어지거나 파괴되거나 순서가 뒤바뀌어 수신되는 일은 결코 없다.

 

1.7 IP주소, 포트번호

URL이 리소스에 대한 주소기 때문에, IP주소와 포트번호는 URL을 이용해서 알 수 있다. 

URL에 포트가 빠진 경우 기본값 80이라고 가정하면 되며, 호스트명(www.netscape.com)은 DNS에 의해 IP('207.200.83.29')로 변환될 수 있다.

 

1.8 웹의 구성요소

 프록시, 캐시, 게이트웨이, 터널, 에이전트

 

 

 

출처

도서 : HTTP 완벽 가이드 - 인사이트

+ Recent posts