티스토리 뷰

programming/protocol

HTTP protocol & method

Jacob_baek 2012. 4. 18. 13:10

HTTP Protocol에 대하여 알아보고 그에 따른 사용법 혹은 상태코드등에 대하여 확인할수 있는 자료를 기술하였다.


HTTP Method Test

telnet command를 활용하여 www.your-server.com 80(또는 웹서의 포트) 명령 수행후

다음과 같은 명령을 수행시 HTTP response code가 출력된다.(GET 혹은 HEAD method 사용)


example)

HEAD /index.html HTTP/1.1

Host: 192.168.1.1

CRLF

※ CRLF는 (\r\n)으로 엔터키 두번입력하면 데이터 전송이 가능하다.


HTTP Message Header


1. 일반헤더 

- cache-control

- no-cache

- no-store

- public

- private

2. 워닝(warning)헤더

3. 기타헤더

Connection

Date

Pragma

Trailer

Transfer-Encoding

Upgrade

Via 헤더 : 전달하는 GW, Proxy, Tunnel 사용에 대한 표시

4. 요청헤더

Accept 헤더

Accept-Charset 헤더

Accept-Encoding 헤더

Authorization 헤더

Expect 헤더

From 헤더

Host 헤더

If-Match 헤더

If-Modified-Since 헤더

If-None-Match 헤더

5. 응답헤더

Accept-Ranges 헤더

Age 헤더

ETag 헤더

Location 헤더

Proxy-Authenticate 헤더

Retry-After 헤더

Server 헤더

Vary 헤

Cache-Control 헤더


HTTP Method

정의 : 클라이언트가 서버에게 특정한 행동을 요구하도록 한다. 


1. GET Method

- 특정 URL의 자원을 요청할 때 사용

- HTML 페이지, 이미지, 텍스트 파일등의 자원에 대한 요청

- 파라메터를 URL상에 표현하여 서버에 넘겨줄수 있음

- 조건부 GET 요청도 가능하다(특정 헤더 포함시 ex. If-Modified-Since, If-Match 등) 

2. HEAD Method

- 문서에 대한 헤더정보를 조회하기 위해 사용된다.

3. POST Method

- GET 메소드와 달리 파라메터가 URL상에 표현되지 않고 HTTP Body상에 입력된다.

- 대개 폼에 입력한 데이터를 서버에 전송하여 상태를 변경하는 작업에 사용됨

4. PUT Method

- 서버에 문서를 업로드하기 위해 사용된다.

5. TRACE Method

- 디버깅을 목적으로 사용된다.

6. DELETE Method

- 웹서버에 있는 문서를 삭제하기 위해 사용된다.

7. CONNECT Method 

8. OPTIONS

- 지정된 문서에 대해 서버가 어떤 기능과 옵션을 제공하는지를 조회한다.



GET / POST 차이점

1. 공통 정의

웹에서 데이터를 전달할때 사용되는 방식

2. 차이점

- 길이 제한(chunk : Content-length)

- GET은 url 주소값 노출, POST는 url이 HTTP Body에 포함되므로 직접적 노출 없음

  (허나 패킷 덤프하여 내용 확인 가능하여 Xecureweb 등의 툴을 사용하여 암호화)

- RFC2616에 의해 정의되어 POST request에 대한 response는 캐시하면 안된다.

  (허나 위는 룰일뿐 캐시를 사용하는 경우도 있다.)

- 인코딩 방식이 서로 상이

- 히스토리 백이 이루어지는 경우 GET은 이전데이터를 보여주나 POST는 새로 요청 수행

3. 실제 사용 사례

- GET : 단순 페이지 요청(서버데이터 가져오는 일)에 많이 사용

- POST : 서버로 데이터 전송(게시판 글 수정 및 등록 등)을 하는 목적으로 많이 사용

- 만약 URL에 ID / Password등을 전달하는 경우 GET의 경우 text 그대로 노출
   허나 POST의 경우 body에 포함하여 암호화하여 전달이 가능



Status Code

1. Information Status code : (1XX) : 예약된 상태코드

2. Sucess status code (2XX) : 문서요청의 성공적 처리

3. Redirection status code (3XX) : 문서의 URL 변경

4. Client error code : 

- 400 : bad request / HTTP 요청 구문상의 오류

- 401 : 

- 403 :

- 404 : 

5. Server error code (500) : server error / 서버상의 문제



참고사이트

http://qaos.com/sections.php?op=viewarticle&artid=206

http protocol 설명(한글화문서)

- "TCP/IP 완벽 가이드 (책)" 참고함

- http://blog.outsider.ne.kr/312

- http://hainaru.tistory.com/45

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함