1. HTTP request method
대표 메소드 6가지
GET: URI에 자원을 지정하여 server에 요청하는 method로 주로 검색할 때 사용한다. (최대 전송 Byte = 4096 Bytes)
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 |