HTTP
HyperText Transfer Protocol
[특징]
- TCP 기반 통신방식 3 Way Handshake로 동작.
- Connectionless : Request - Response 이후 접속을 바로 끊어버린다.
- Stateless : 통신 상태가 저장되지 않는다.
이러한 특징으로 불긑정 다수를 대상으로하는 서비스에 적합한 방식이다.
통신 상태가 저장되지 않는 단점은 캐시나 web socket protocl 기술로 커버한다.
[HTTP 1.x 구조]
- start line : HTTP Method, URL, HTTP Protocol Version
- Header : 처리 가능한 파일의 종류, 문자 코드, 언어, 콘텐츠 길이 등
start line + Header == Head
- Body: Single Resource Bodies or Multiple Resource Bodies
Single Resource Bodies : Content-Type, Content-Length로 정의된 단일 파일로 구성
Multiple Resrouce Bodies : 파트마다 다른 정보를 지니는 보통 HTML Form
HTTP/1.x message 결함
- 본문은 압축이 가능하나 헤더는 불가능
- 연속된 메시지는 비슷한 헤더 구조를 가지는 것이 보통인데, 메시지마다 반복되어 전송
- Multiplexing 불가능 -> 서버 하나에 여러 Connection 필요.
why HTTP/2?
HTTP/2는 HTTP/1.x 의 메시지를 '프레임'으로 나누어 스트림에 키워넣어
헤더 압축을 가능하게 하고, 스트림 여러개를 하나로 묶어 Multiplexing이 가능해진다.
프로토콜을 자체적으로 수정하지 않고 이미 입증된 메커니즘을 바탕으로 이뤄낸 것이기 때문에
기존 프로토콜을 대체할 필요 없이 '확장'만 하면된다.
[Status Code]
Reference 페이지 참조
developer.mozilla.org/ko/docs/Web/HTTP/Status
※ 404 Error 발생시 에러 페이지로 Redirection 하는 것이 국룰이다.
<취약점 진단>
Web Proxy Tool: Burp Suite / Fiddler
프록시 서버 분석 툴만 잘써도 취약점 분석 90% 가능.
Web Proxy?
A proxy server is a web server that acts as a gateway between a client application
브라우저가 가장 먼저 거쳐가는 서버
주요 목적
- 요청을 필터링한다. (ex. 지역별 IP에 따른 접근 제어)
- 성능을 향상시킨다. (ex. Reverse Proxy Server)
Reverse Proxy Server
클라이언트의 요청을 웹 서버에게 전달하는 서버로
이미지와 페이지를 캐싱하여 웹 서버의 로드를 줄이는 역할을 한다.
[Reference]
www.forcepoint.com/cyber-edu/web-proxy-server
developer.mozilla.org/ko/docs/Web/HTTP/Messages
developer.mozilla.org/ko/docs/Web/HTTP/Status
'Web' 카테고리의 다른 글
[HTTP] Connection Management (0) | 2020.10.01 |
---|---|
Cache vs Cookie vs Session (0) | 2020.09.18 |
스타일 적용 우선순위 & n-th selector (0) | 2020.02.20 |
[CSS] position 설정시 유의점 (0) | 2020.02.19 |
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client (0) | 2020.01.21 |