보안 - HTTP

jeong_hyeon·2022년 6월 3일
0

보안

목록 보기
1/5
post-thumbnail

HTTP(Hyper Text Transfer Protocol)

서버와 클라이언트의 데이터 교환을 요청(Request)과 응답(Response) 형식으로 정의한 프로토콜

HTTP 기본 메커니즘

클라이언트가 서버에게 요청하면, 서버가 응답.

웹 서버는 HTTP 서버를 HTTP 서비스 포트에 대기시킨다.

이 포트는 일반적으로 TCP/80 또는 TCP/8080입니다. 클라이언트가 서비스 포트에 HTTP 요청을 전송하면, 이를 해석하여 적절한 응답을 반환

HTTP 메시지

클라이언트가 전송하는 HTTP 요청, 그리고 서버가 반환하는 HTTP 응답

기능과 세부 구조에서는 차이가 있지만, 크게 보면 이들은 HTTP 헤드와 바디로 구성

HTTP 헤드

HTTP 헤드의 각 줄은 CRLF로 구분되며, 첫 줄은 시작 줄(Start-line), 나머지 줄은 헤더(Header)
라고 부릅니다. 헤드의 끝은 CRLF 한 줄로 나타낸다.

헤더는 필드와 값으로 구성되며 HTTP 메시지 또는 바디의 속성을 나타냅니다. 하나의 HTTP 메시지에는 0개 이상의 헤더가 있을 수 있다.

HTTP 바디

HTTP 바디는 헤드의 끝을 나타내는 CRLF 뒤, 모든 줄을 말합니다. 클라이언트나 서버에게 전송 하려는 데이터가 바디에 담긴다

💡 CRLF란? 용어(CR, LF)와 이 용어들의 조합(CRLF)은 새로운줄 로 바꾸는 방식을 의미 간단하게 말하면 줄바꿈(newline)을 입력하는 문자를 칭하는 표현 CR : 현재 커서를 줄올림 없이 가장 앞으로 옮기는 동작 LF : 커서는 그 자리에 그대로 둔 상황에서 종이만 한 줄 올려 줄을 바꾸는 동작

HTTP 요청(Request)

서버에게 특정 동작을 요구하는 메시지

서버는 해당 동작이 실현 가능한지, 클라이언트가 그러한 동작을 요청할 권한이 있는지 등을 검토하고, 적절할 때만 이를 처리 한다.

시작줄

HTTP 요청의 시작 줄은 메소드(Method), 요청 URI(Request-URI), 그리고 HTTP 버전으로 구성

각각은 띄어 쓰기로 구분

메소드는 URI가 가리키는 리소스를 대상으로, 서버가 수행하길 바라는 동작

HTTP 표준 Method

OPTIONS, GET, POST, PUT, DELETE, TRACE, CONNECT

HTTP 응답(Response)

HTTP 응답은 HTTP 요청에 대한 결과를 반환하는 메시지

요청을 수행했는지, 하지 않았는지, 안 했다면 이유는 무엇인지와 같은 상태 정보(Status), 그리고 클라이언트에게 전송할 리소스가 응답에 포함

시작줄

HTTP 응답의 시작 줄은 HTTP 버전, 상태 코드(Status Code), 그리고 처리 사유(Reason Phrase)
로 구성. 각각은 띄어쓰기로 구분됩니다.

HTTP 버전은 서버에서 사용하는 HTTP 프로토콜의 버전을 나타냄 그리고 상태 코드는 요청에 대한 처리 결과를 세 자릿수로 나타낸다.

HTTP 표준인 RFC 2616은 대략 40여개의 상태 코드를 정의하고 있는데, 각각은 첫 번째 자릿수에 따라 5개의 클래스로 분류

처리 사유는 상태 코드가 발생한 이유를 짧게 기술한 것

0개의 댓글