본문 바로가기

web

HTTP란?

  HTTP란? WWW에서 정보를 주고 받을 때 사용되는 규약(프로토콜)이며 80번 포트를 사용한다.                             

사용자와 서버 사이에 이루어 는 요청/응답(Request/Response) 프로토콜이다.

 ▣ HTTP의 특징

1. TCP 기반의 통신방식(3-way handshake)

2. 비연결 지향

3. 단방향성

4. 평문전송


HTTP Request

사용자가 서버에게 요청하는 것이다.

※여기서 서버(Server)란 서비스를 제공하는 입장이고,

사용자(Client)는 이 서비스를 제공받는 것을 의미한다. 

※ HTTP Request 구조

• 메소드 : 사용자가 서버에 요청하는 메소드와 HTTP의 버전을 확인할 수 있다.

• 요청헤더 : 서버에 전달하는 사용자의 정보(처리 가능한 파일의 종류와 문자 코드, 언어 등)을 나타내는 부분이다.

• 공백부분 : HTTP의 요청 헤더 부분과 본문 부분을 구분하기 위한 공백이다.

• 본문 : 메시지의 내용을 담고 있는 부분이다. GET메소드인 경우에는 요청정보가 URL에 포함되어 전송되며  메시지본문을 사용하지 않으므로 비어 있게 된다.

HTTP Request 헤더

 

HTTP Request 메소드의 종류와 특징

종류

특징

HEAD

HTTP 헤더의 정보만을 수신하여 웹 서버의 정보를 확인한다.

TRACE

웹 서버에 요청한 내용을 다시 사용자에게 되돌려주는(루프백) 역할을 한다.

PUT

웹 서버의 자원을 생성한다.

DELETE

웹 서버의 자원을 삭제한다.

CONNECT

웹 서버에 프록시 포트를 요청하여 다른 포트를 사용한다.

OPTIONS

웹 서버가 지원하는 메소드의 종류를 확인한다.

GET

웹 서버에 자원을 요청한다.

POST

GET POST 메소드의 차이

 

GET

POST

전송방식

데이터를 URL에 포함하여 전송

메시지본문에 데이터를 첨부하여 전송

데이터양의 한계

4096byte(4KB) = 255자

제한 없음.

데이터 타입

ASCII 형태만 허용

제한 없음.

속도

빠르다.

느리다.

결론

서버에서 데이터를 

불러오는 것

서버의 데이터를 수정하는 것


▣ HTTP Response

서버가 사용자의 요청에 대한 응답을 해주는 것이다.

※ HTTP Response 구조

• 상태코드 : 사용자의 요청에 대한 서버의  처리결과를 나타낸다. 

• 응답헤더 : 사용자에게 전달한 데이터의  정보를 나타내는 부분이다.

• 공백부분 : HTTP의 요청 헤더 부분과 본문 부분을 구분하기 위한 공백이다.

• 본문 : 사용자에게 전달한 데이터의 내용을 담고있는 부분이다.


HTTP Response 헤더

 

HTTP Response 상태코드

코드 클래스

설명

100 ~ 199

사용자의 요청이 현재 처리되고 있음을 의미한다.

200 ~ 299

서버가 사용자의 요청에 대해 성공적으로 처리했음을 의미한다.

300 ~ 399

사용자가 요청을 마치기 위해 추가 동작을 해야 함을 의미한다..

400 ~ 499

사용자측의 에러가 발생했음을 의미한다.

500 ~ 599

서버 측 에러가 발생했음을 의미한다.

• 중요 상태코드

코드

설명

HTTP 200

서버가 사용자의 요청에 정상적으로 처리했음을 의미한다.

HTTP 400

사용자의 요청에 서버가 제대로 인식하지 못 했을 경우를 의미한다.

HTTP 401

사용자가 서버의 자원을 요청할 권한이 없음을 의미한다.

HTTP 403

서버가 사용자의 요청을 거부하고 있음을 의미한다.

HTTP 404

사용자가 서버에 존재하지 않는 페이지에 대해 요청할 경우를 의미한다.

HTTP 500

서버에 오류가 발생하여 요청을 수행할 수 없음을 의미한다.


'web' 카테고리의 다른 글

webhacking.kr을 통해 배우는 웹 해킹 기초  (0) 2015.03.02
Owasp Top 10 2013  (0) 2015.01.21
인코딩과 인코딩 방식  (0) 2014.07.07
쿠키(Cookie)와 세션(Session)  (0) 2014.07.05
웹 기초 지식  (0) 2014.06.03