HTTP(HyperText Transfer Protocol) 웹상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다. TCP UDP를 사용하며, 80번 포트를 사용한다. 1996년 버전 1.0, 그리고 1999년 1.1이 각각 발표되었다.

HTTP는 클라이언트 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. HTTP를 통해 전달되는 자료는 http:로 시작하는 URL(인터넷 주소)로 조회할 수 있다.

 

HTTP 전송 방식

HTTP 버전에 따라 전송방식이 약간 다릅니다. 기본적으로는 DNS를 통하여 IP주소를 확인하고 3-Way Hnadshake 접속 이후 데이터를 송수신 합니다.

이때 1.0 버전은 세션을 연결한 이후 하나의 데이터를 받고 이후 세션을 종료 한 이후에 다시 세션을 맺고 다음 데이터를 받게 됩니다. 속도가 느린 것이 단점입니다.

 

1.1 버전은 세션을 한 번만 연결하면 keep-alive기능을 이용하여 지속적으로 데이터를 받아올 수 있습니다. 따라서 1.0에 비해 속도가 빠릅니다.

 

Pipelining 방식도 있습니다. 여러 개의 세션을 연결한 이후에 여러 개의 요청을 받아올수 있습니다.

 

HTTP 메소드

HTTP 메소드는 클라이언트가 서버에 요청하는 메시지에 대한 메소드로서 GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH로 총 9가지가 존재한다. 하지만 보안상의 이유로 GET, POST 2개 또는 OPTIONS 포함 3개만을 허용하는 경우가 대부분입니다..

GET - 요청 URI의 정보를 가져온다.

HEAD - 요청 URI의 헤더정보만 가져온다.

POST - 요청 URI의 리소스의 새로운 정보를 보낸다.

PUT - 요청 URI에 저장될 정보를 보낸다. (전체 저장)

DELETE - 요청 URI의 리소스를 삭제한다.

CONNECT - 프록시에 사용하기 위해 예약된 메소드이다.

OPTIONS - 요청 URI에서 사용할 수 있는 METHOD를 물어본다.

TRACE - 보낸 메시지를 다시 돌려보낸다(loopback)

PATCH - 요청 URI에 저장될 정보를 보낸다. (일부 저장)

 

HTTP Response code

클라이언트에서 HTTP Request 시 서버에서 클라이언트로 보내는 응답 코드입니다.

1XX (Information)  : 정보교환

2XX (Success)       : 성공

3XX (Redirection)  : 자료의 위치 바뀜

4XX (Client Error)  : 클라이언트 오류

5XX (Server Error)  : 서버 오류

 

이상 간단하게 개요를 통하여 HTTP에 대하여 알아보았습니다.

HTTP의 경우에는 좀 더 심도있게 공부해야할 필요성을 느껴서 HTTP Header와 메소드별 요청 정보, 그리고 수 많은 응답 코드에 대해 글을 쓰며 공부를 진행하도록 하겠습니다.

'Web Hacking > 이론적인 내용' 카테고리의 다른 글

OWASP Top 10 2017  (0) 2017.07.10
쿠키(Cookie)란?  (0) 2017.07.07
Session이란?  (0) 2017.06.26
HTTP 구조 정보  (0) 2017.06.19
Web 개요  (0) 2017.06.05
블로그 이미지

꼴통보안인

,