728x90

강의 : 2) 웹의 동작 (HTTP 프로토콜 이해)

 

1. 웹에서 사용하는 언어 - HTTP (Hyper Text Transfer Protocol)

정리: 서버와 클라이언트가 인터넷 상에서 데이터를 주고 받기 위한 프로토콜

 

(1) 특징

- 어떤 종류의 데이터도 전송 가능 : 이미지, 동영상, 오디오, 텍스트

- 서버/클라이언트 모델을 따름 : 클라이언트가 서버에게 요청을 보내면, 서버가 클라이언트에게 응답을 보내는 형태

- 불특정 다수를 대상으로 하는 서비스에 적합

- 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에, 클라이언트와 서버 간 최대 연결 수보다 훨씬 많은 요청과 응답을 처리 가능

 

- 클라이언트와 서버가 응답 후 연결을 끊어버리는 것을 stateless라고 하는데, 이 때문에 클라이언트의 이전 상황을 알 수가 없음

(클라이언트 - 서버의 연결 -> 클라이언트의 요청 -> 서버의 응답 -> 서버에서 연결 해제)

- stateless 한 특성 때문에 정보 유지를 위해 Cookie와 같은 기술이 등장

 

(2) 역사

CERN의 팀 버너스 리의 팀이 HTML과 웹 브라우저, 웹 브라우저 관련기술, HTTP를 발명!!

HTTP 0.9 가 최초 문서화 된 HTTP 버전

지금은 HTTP v 2.0까지 나온 상태이지만 현재(?) 많이 사용되고 있는 버전은 HTTP v1.1이라고 한다.

 

HTTP 요청/응답

(3) 클라이언트 요청 데이터 포맷

 

1) 요청 헤더

GET /servlet/qieru?a=10&b=90 HTTP/1.1

Host: www.sk.com 

User-agent: mozilla/4.0

Accept-language: kr

 * 첫 번째줄 구성요소 : GET /servlet/qieru?a=10&b=90 HTTP/1.1

구성요소 내용 EX
요청 메소드 메소드에 따라 필요한 요청 자원이 바디에 붙어서 간다. 이경우는 GET이기 때문에 요청바디가 비어있다. GET
요청 URI 요청하는 자원의 위치를 명시해주는 부분 /servlet/qieru?a=10&b=90 HTTP/1.1
HTTP 프로토콜 버전 웹 브라우저에서 사용하는 프로토콜의 버전을 명시 HTTP/1.1

* 두 번째 줄 부터 헤더 정보 여러 줄:

{

  헤더 명 : 헤더 값,

  헤더 명 : 헤더 값

}

 

2) 빈줄 부분

 

3) 요청 바디

GET메소드라서 비어있음

 

(4) 서버의 응답 데이터 포멧

 

1) 응답 헤더 

* 첫 번째줄 구성 요소 

첫 번째 줄 구성요소 내용  
응답 HTTP 프로토콜의 버전   HTTP/1.1  
응답 코드   200
응답 메시지   OK

* 두 번째 줄 부터 응답 헤더 여러 줄

 {

  헤더 명 : 헤더 값,

  헤더 명 : 헤더 값

}

{

  Date: 날짜

  Server: Apache/1.3.0(Unix)

  Last-Modified: 날짜

  Content-Length:

  Content-Type:

}

 

* 빈줄 부분

 

2) 응답 바디 : 실제 응답 리소스 데이터

 

 

 

 

2. 인터넷(네트워크 통신)의 이해

- WWW(World Wide Web, )은 인터넷의 기능 중 하나임.

- 하나의 컴푸터에 여러 개의 서버가 동작 가능하고, 각각의 서버는 포트를 통해 구분되어 동작

ex) 웹: 80, 이메일: 25... 

- 인터넷은 보통 TCP/IP라는 약속으로 연결되어 있음.

- 인터넷의 한 종류인 에서는 서로 통신하기 위해 http를 사용 : 사실은 application layer에서 http 프로토콜, transport layer에서는 tcp/ip 프로토콜 사용. 결국 둘다 사용.

 

3. URL ( Uniform Resource Locater)

- 정리: 웹 상에서 여러 자원들(이미지, 동영상 등)의 위치를 나타내기 위해 사용

- 구성

(1) 접근 프로토콜

(2) 자원이 있는 서버의 IP 주소 / 도메인 주소 (= 서버 컴퓨터 주소)  +  포트번호 (해당 서버 컴퓨터 내의 서버 포트 번호)

(3) 문서의 경로와 문서 이름

+ Recent posts