< HTTP Request>
* GET 메소드
- 데이터 전송용량의 한계(IE에서는 2083자로 제한)로 인해 기본 페이지 및 그림 파일과 같은 간단한 데이터 전송에 사용
- 모든 정보가 헤더에 포함
형식 |
GET [request-uri]?query_string HTTP/1.1\r\n Host : [Hostname] 혹은 [IP] \r\n |
=> HTTP Request헤더에 포함될 수 있는 정보들
-> GET /index.jsp HTTP/1.1
- 데이터 처리방식(HTTP Method), 기본 페이지, 프로토콜 버전
-> user-agent: MSIE 6.0; Windows NT 5.0User-Agent:
- 사용자의 웹 브라우저 종류 및 버전 정보
- 공격툴인지 아닌지 확인 가능(쉽게 조작이가능하기때문에 신뢰할만하지는 않음)
-> accept: text/html; */*Accept:
- 웹 서버로부터 수신되는 데이터 중 웹 브라우저가 처리할 수 있는 데이터 타입(MIME)을 의미
- text/html는 text, html형태의 문서를, */*는 모든 문서를 처리할 수 있다라는 것을 의미
-> cookie: name=vlaue
- 프로토콜 자체가 세션을 유지하지 않는 State-Less(접속 상태를 유지하지 않는)방식이기 때문에 사용자 정보를 기억하기 위해 만든 인위적인 값
-> referer: http://www.xxx.xxx
- 경유지를 알려주는 도메인 혹은 URL정보
-> host: www.xxx.xxx
- 사용자가 요청한 도메인 정보
* POST 메소드
- 게시판 등과 같은 폼 데이터 및 CGI 프로그램으로 구성된 페이지의 대용량 데이터를 처리하기 위해 사용
- 웹 브라우저와 시스템 간 데이터 처리로 웹 브라우저에서는 페이지 정보만을 확인할 수 있으나 프록시 툴을 이용하면 전송 데이터도 확인 가능
- GET 방식과의 차이점은 바디(몸체)에 요청한 데이터 값(게시판의 제목, 글 내용)이 포함
- 헤더에는 페이지 정보만 존재하며 바디에 입력한 값 등이 포함
형식 |
POST [request-uri] HTTP/1.1\r\n Host : [Hostname] 혹은 [IP] \r\n Content-Length : [Length in Bytes] \r\n Content-Type : [Content Type] \r\n \r\n [query-string] 혹은 [데이터] |
* 기타 메소드
종류 |
전송 형태 |
설명 |
HEAD |
HEAD [request-uri] HTTP/1.1\r\n Host : [Hostname] 혹은 [IP] \r\n |
- GET과 유사 - 웹 서버의 다운 유무 점검 및 웹 서버 정보 등을 얻기 위해 사용 |
OPTIONS |
OPTIONS [request-uri] HTTP/1.1\r\n Host : [Hostname] 혹은 [IP] \r\n |
- 시스템에서 지원되는 메소드 종류를 확인 |
PUT |
PUT [request-uri] HTTP/1.1\r\n Host : [Hostname] 혹은 [IP] \r\n Content-Length : [Length in Bytes] \r\n Content-Type : [Content Type] \r\n \r\n [데이터] |
- POST와 동일하게 헤더 및 몸체를 포함하며 몸체에 컨텐츠 내용을 덮붙여 원격지 서버에 지정한 컨텐츠를 저장하기 위한 목적으로 사용 - 이를 악용하여 홈페이지 변조에 사용 |
TRACE |
TRACE [request-uri] HTTP/1.1\r\n Host : [Hostname] 혹은 [IP] \r\n \r\n |
- 원격지 서버에 Loopback 메시지를 호출하기 위해 사용 |
CONNECT |
CONNECT [request-uri] HTTP/1.1\r\n Host : [Hostname] 혹은 [IP] \r\n \r\n |
- 웹 서버에게 프록시 기능을 요청할 때 사용 |
<HTTP Response>
* HTTP수신(응답) 필드 값들
=> HTTP/1.1 OK 200
- 웹 프로토콜 버전 및 응답코드
=> Server: NCSA/1.4.2
- 웹 어플리케이션 종류 및 버전 정보
(보안설정에 따라 종류 및 버전 정보 등은 제한될 수 있음)
=> Content-type: text/html
- MIME 타입 정보가 포함
=> Content-length: 107
- 수신 Body 사이즈 정보가 포함
=> 컨텐츠 내용(사용자가 요청한 페이지 정보)
<HTML> <HEAD> <TITLE>My first HTML Document</TITLE> <HEAD> <BODY> <P>Hello World! </BODY> </HTML> |