웹 개발 메모장

[http] Request와 Response의 구조 및 역할 본문

옛날../http

[http] Request와 Response의 구조 및 역할

도로롱주 2017. 12. 28. 16:16




Request / Response



클라이언트와 서버 간에 통신을 할 대 클라이언트는 서버에게 요청(request)을 하고 서버는 클라이언트에게 응답(response)을 합니다.


HTTP 에서 교환하는 정보는 HTTP 메시지 라고 하고 Request 측 HTTP 메시지를 Request 메시지, Response 측 HTTP메시지를 Response 메시지라고 합니다.





Request


클라이언트가 어떤 웹 페이지를 어떻게 불러오고 싶은 지에 대한 정보가 담겨있으며 아래와 같이 구성되어 있습니다.


1
2
3
4
메소드 URI 프로토콜 버전
Request 헤더 필드

엔티티
cs


예를 들면 아래와 같은 Request가 있을 수 있습니다.


1
2
3
4
5
GET /index.html HTTP/1.1
Host: dororong.kr
Connection: keep-alive
 
name=dong&age=27
cs


해석 해보면


HTTP/1.1 버전의 프로토콜로 GET 방식으로 호스트가 dororong.kr 인 곳의 /index.html 을 가져와라.

가져오는데 연결(Connection)지속적(keep-alive)인 방식으로 하며 name age라는 패러미터를 만들어서 각각 dong 27 을 값으로 담아 같이 보내자.



여기서 메소드다음과 같은 종류가 있습니다.


 메소드

 역할

비고

 GET

 리소스 취득

 URI로 식별된 리소스를 가져오도록 요구

 POST

 엔티티 바디 전송

 엔티티를 전송하기 위해 사용

 PUT

 파일 전송

 자체 사용자 인증 기능이 없어 잘 사용하지 않음

 HEAD

 메시지 헤더 취득

 URI 유효성과 리소스 갱신 시간을 확인하는 목적 등으로 사용

 DELETE

파일 삭제

 자체 사용자 인증 기능이 없어 잘 사용하지 않음

 OPTIONS

 서포트하는 메소드 문의

 예) Allow: GET, POST, HEAD, OPTIONS

 TRACE

 경로 조사

 프록시 서버 등을 중계하여 접근할 때 그 동작을 확인하기 위함

 CONNECT

 프록시의 터널링 요구

 주로 SSL 등 으로 암호화 된 것을 터널링 시키기 위해 사용




Response


서버가 클라이언트에게 전달해주는 페이지에 대한 정보가 담겨있으며 아래와 같이 구성되어 있습니다.


1
2
3
4
프로토콜 버전 상태모드 상태코드 설명
Response 헤더 필드
 
바디
cs


예를 들면 아래와 같은 Response가 있을 수 있습니다.


1
2
3
4
5
6
7
HTTP/1.1 200 OK
Date: Tue, 10 Jul 2012 06:50:15 GMT
Content-Length:362
Content-type:text/html
 
<html>
...
cs


해석해보면



HTTP 프로토콜이며 서버의 버전은 1.1이고 Request에 대한 처리 결과는 200 이다. 다시말해 OK 이다.

내가 전달할 메시지는 2012년 7월 10일 화요일 6시50분15초에 만들어 졌으며

내용의 길이는 362이고 내용은 text/html 타입이다.

보낼 내용은 <html> ... 이다.

Comments