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 |