클라이언트가 웹 서버와 리소스를 주고받기 위해 http를 어떻게 사용할까?
HTTP 트랜잭션은 요청 명령(클라이언트 -> 서버) 와 응답결과 (서버 -> 클라이언트) 로 나뉜다.
이 상호작용은 "HTTP 메시지" 라고 불리는 정형화된 데이터 덩어리를 통해서 이루어진다.
위 사진과 같은 형태로 상호작용이 이루어진다.
HTTP 메서드는 여러 가지 종류의 요청명령을 자원한다.
모든 HTTP 요청 메시지는 한 개의 메서드를 가진다.
메서드는 서버에게 어떤 동작이 취해져야 하는지 말한다.
예를 들어, 웹 사이트 가져오기, 게이트웨이 프로그램 실행, 파일 삭제 등과 같은 것이 있다고 보면 된다.
자주 사용되는 http메서드에는 다음과 같은 종류들이 있다.
메서드 종류 | 설명 |
---|---|
GET | 서버에서 클라이언트로 지정한 리소스를 보내라. |
PUT | 클라이언트에서 서버로 보낸 데이터를 지정한 이름의 리소스로 저장하라. |
DELETE | 지정한 리소스를 서버에서 삭제하라.. |
POST | 클라이언트 데이터를 서버 게이트웨이 애플리케이션으로 보내라. |
HEAD | 지정한 리소스에 대한 응답에서 HTTP헤더 부분만 보내라. |
모든 HTTP 응답 메시지는 상태 코드와 함께 반환된다.
상태 코드는 클라이언트에게 요청이 성공했는지 아니면 추가조치가 필요한지 알려주는 상태코드이다. 그러나 실제 응답처리는 숫자로 된코드가 사용된다.
값 | 텍스트 | 설명 |
---|---|---|
200 | 성공(OK) | 요청 성공 |
302 | 임시 이동 | 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 |
요청자는 향후 요청 시 원래 위치를 계속 사용해야 함. | ||
403 | 금지됨(Forbidden) | 접근 거부 |
404 | 찾을 수 없음(Not Found) | 페이지 없음 |
500 | 내부 서버 오류(Internal Server Error) | 서버 오류 발생 |
흔히 쓰이는 상태코드들에는 위와 같은 상태코드들이 있다.
웹 페이지는 여러 객체로 이루어질 수 있는데, 어플리케이션은 보통 하나의 작업수행을 위해 HTTP 트랜잭션을 수행한다.
다시 말해, 웹 페이지는 첨부된 리소스들에 각각 별개의 HTTP 트랜잭션을 필요로 한다는 것이다.
예를 들어, 웹 브라우저는 시각적으로 풍부한 웹 페이지를 가져올 때 대량의 HTTP 트랜잭션을 수행한다. 페이지의 레이아웃을 서술하는 HTML 뼈대를 한 번의 트랜잭션으로 가져오고 첨부된 이미지, 자바 애플릿, 그래픽 조각 등을 가져오기 위해 추가 HTTP 트랜잭션을 수행한다.