2장 URL과 리소스

 

2.1 인터넷의 리소스 탐색하기

 

URL은 브라우저가 정보를 찾는데 필요한 리소스의 위치를 가리킨다.

 

URL은 세 부분으로 나뉘어진다.

 

예를 들어 http://www.joes-hardware.com/seasonal/index-fall.html 이라는 URL을 불러올 때.

 

- 스킴 (어떻게)

http:// 부분은 스킴이다. 웹 클라이언트가 리소스에 어떻게 접근하는지 알려준다.

이 경우에, URL이 HTTP 프로토콜을 사용한다.

 

- 호스트(어디에)

www.joes-hardware.com은  은 서버의 위치다. 리소스가 어디에 호스팅 되어있는지 알려준다.

 

- 경로(무엇을)

/seasonal/index-fall.html은 리소스의 경로다. 요청받은 리소스가 무엇인지 알려준다.

 

대부분의 URL은 동일하게 '스킴://서버위치/경로' 구조로 이루어져 있다.

 

3장 HTTP 메세지

3.1.1 메세지는 원 서버 방향을 인바운드로 하여 송신된다

 

메세지가 원 서버로 향하는 것은 인바운드로 이동하는 것이고,

모든 처리가 끝난 뒤에 메세지가 사용자 에이전트로 돌아오는 것은 아웃바운드로 이동하는 것이다.

 

 

3.2.2 시작줄

 

모든 HTTP 메세지는 시작줄로 시작한다.

요청 메세지의 시작줄은 무엇을 해야 하는지 말해준다.

응답 메세지의 시작줄은 무슨 일이 일어났는지 말해준다.

 

메서드)

요청의 시작줄은 메서드로 시작하며, 서버에게 무엇을 해야 하는지 말해준다.

예를 들어 GET /specials/saw-blade.gif HTTP /1.0 이라는 시작줄에서 메서드는 GET이다.

 

많이 쓰이는 7가지의 HTTP 메서드는 다음과 같다.

메서드 설명 메세지 본문이 있는가?
GET 서버에서 어떤 문서를 가져온다. 없음
HEAD 서버에서 어떤 문서에 대해 헤더만 가져온다. 없음
POST 서버가 처리해야 할 데이터를 보낸다. 있음
PUT 서버에 요청 메세지의 본문을 저장한다. 있음
TRACE 메세지가 프락시를 거쳐 서버에 도달하는 과정을 추적한다. 없음
OPTIONS 서버가 어떤 메서드를 수행할 수 있는지 확인한다. 없음
DELETE 서버에서 문서를 제거한다. 없음

모든 서버가 이 메서드들을 구현한 것은 아니며, HTTP는 메서드를 추가로 구현하여 확장할 수 있다.

 

상태 코드)

상태 코드는 클라이언트에게 무엇이 일어났는지 말해준다.

상태 코드는 응답의 시작줄에 위치한다.

 

전체 범위 정의된 범위 분류
100 - 199 100 - 101 정보
200 - 299 200 - 206 성공
300 - 399 300 - 305 리다이렉션
400 - 499 400 - 415 클라이언트 에러
500 - 599 500 - 505 서버 에러

 

3.3 메서드

 

3.3.1 안전한 메서드(Safe Method)

 

GET이나 HEAD 메서드는 안전하다고 할 수 있는데, 이는 GET이나 HEAD 메서드를 사용하는 HTTP 요청의 결과로 서버에 어떤 작용도 없음을 의미한다.

작용이 없다는 것은, HTTP 요청의 결과로 인해 서버에서 일어나는 일은 아무것도 없다는 의미이다.

 

3.3.2 GET

3.3.3 HEAD

HEAD 메서드는 정확히 GET처럼 행동하지만, 서버는 응답으로 헤더만을 돌려준다.

HEAD를 사용하면,

 

- 리소스를 가져오지 않고도 그에 대해 무엇인가(타입이라거나) 를 알아낼 수 있다.

- 응답의 상태 코드를 통해, 개체가 존재하는지 확인할 수 있다.

- 헤더를 확인하여 리소스가 변경되었는지 검사할 수 있다.

 

서버 개발자들은 반드시 반환되는 헤더가 GET으로 얻는 것과 정확히 일치함을 보장해야 한다.

또한 HTTP/1.1 준수를 위해서는 HEAD 메서드가 반드시 구현되어 있어야 한다.

 

3.3.4 PUT

PUT 메서드는 서버에 문서를 쓴다.

PUT 메서드의 의미는, 서버가 요청의 본문을 가지고 요청 URL의 이름대로 새 문서를 만들거나, 이미 URL이 존재한다면 본문을 사용해서 교체하는 것이다.

 

3.3.5 POST

POST 메서드는 서버에 입력 데이터를 전송하기 위해 설계되었다.

 

3.3.6 TRACE

TRACE 메서드는 클라이언트에게 자신의 요청이 서버에 도달했을 때 어떻게 보이게 되는지 알려준다.

 

3.3.7 OPTIONS

OPTIONS 메서드는 웹 서버에게 여러 가지 종류의 지원 범위에 대해 물어본다.

서버는 자신의 리소스에 대해 지원하는 메서드의 목록을 반환한다.

 

 

+ Recent posts