본문 바로가기

웹 보안

HTTP method status code

반응형

1. HTTP request method


대표 메소드 6가지

GET: URI에 자원을 지정하여 server에 요청하는 method로 주로 검색할 때 사용한다.

POST: URI에 지정한 자원으로 data를 전달 후, 처리 결과를 server에 요청하는 method로 data를 http request body에 넣어 전달하므로 GET과 달리 전달한 data가 URI에 노출되지 않음

HEAD: server가 response packet을 보낼 때, body를 제외하고 header만 응답해주는 method
주로 URL link 유효성 검증을 위해 사용한다.

OPTIONS: 사용할 수 있는 method를 확인한다.

PUT: 자원을 업로드할 때 사용하는 method로 request body에 포함된 data를 요청 URI로 지정한 자원으로 저장한다.

TRACE: http request에 대한 loopback test로 사용하는 method

DELETE: request에 대한 지정 자원을 server에서 삭제하는 method


HTTP request message 구조

Start line(request line)
request method + request URI + HTTP version

headers(request header)
Host + User-agent + Referer

Host: server의 도메인 or host명과 port 정보
User-agent: request client의 app과 OS 정보
Referer: 현재 request URL 정보를 담고 있는 이전 문서의 URL 정보

Empty line = CRLF

Message body
client에서 server로 전달하는 data가 포함된 부분



2. HTTP response status code


HTTP request에 대한 server의 response 정보
status code의 종류는 아래와 같다.

200 = OK
301 = moved permanently: 요청한 자원의 위치가 영구적으로 변경됨
302 = found: 요청한 자원의 위치가 일시적으로 변경됨
400 = Bad request: request message의 문법 error
401 = Unauthorized: 인증되지 않음, 페이지 접근 권한이 없음 ( 방화벽에서 차단했을 가능성이 큼 )
403 = Forbidden: contents 접근 권한이 없음
404 = Not found: 요청한 자원이 server에 없음
405 = Method Not Allowed: request method가 server에서 처리되지 못함 ( 방화벽에서 차단했을 가능성이 큼 )
413 = Payload too large: 전달한 payload의 값이 server가 처리할 수 있는 크기를 넘어섬
414 = URI too large: 전달한 URI의 크기가 server에서 처리할 수 있는 크기를 넘어섬

반응형

'웹 보안' 카테고리의 다른 글

JWT 인증 우회  (1) 2024.02.05
MVC 패턴  (1) 2024.02.01
Blind SQL injection  (0) 2023.02.06
Non-Blind SQL injection  (0) 2022.12.13
SQL injection  (0) 2022.11.22