HTTP

2020. 9. 18. 12:55·Web

 

HTTP

HyperText Transfer Protocol

 

[특징]

  • TCP 기반 통신방식 3 Way Handshake로 동작.
  • Connectionless : Request - Response 이후 접속을 바로 끊어버린다.
  • Stateless : 통신 상태가 저장되지 않는다.

이러한 특징으로 불긑정 다수를 대상으로하는 서비스에 적합한 방식이다.

통신 상태가 저장되지 않는 단점은 캐시나 web socket protocl 기술로 커버한다.

[HTTP 1.x 구조]

HTTP Message Structure (Reference : MDN)

  • 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/1.x vs HTTP/2 stream Structre (rf. MDN)

HTTP/2는 HTTP/1.x 의 메시지를 '프레임'으로 나누어 스트림에 키워넣어

헤더 압축을 가능하게 하고, 스트림 여러개를 하나로 묶어 Multiplexing이 가능해진다.

 프로토콜을 자체적으로 수정하지 않고 이미 입증된 메커니즘을 바탕으로 이뤄낸 것이기 때문에

기존 프로토콜을 대체할 필요 없이 '확장'만 하면된다.

 

[Status Code]

Reference 페이지 참조

developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드

번역이 완료되지 않았습니다. Please help translate this article from English HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제

developer.mozilla.org

 

 

※ 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

브라우저가 가장 먼저 거쳐가는 서버

 

주요 목적

  1. 요청을 필터링한다. (ex.  지역별 IP에 따른 접근 제어)
  2. 성능을 향상시킨다. (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
'Web' 카테고리의 다른 글
  • [HTTP] Connection Management
  • Cache vs Cookie vs Session
  • 스타일 적용 우선순위 & n-th selector
  • [CSS] position 설정시 유의점
M_Falcon
M_Falcon
  • M_Falcon
    Falcon
    M_Falcon
  • 전체
    오늘
    어제
    • 분류 전체보기 (429)
      • Web (16)
        • Nodejs (14)
        • Javascript (23)
        • FrontEnd (4)
      • DataBase (39)
        • Fundamental (1)
        • Redis (4)
        • PostgreSQL (10)
        • NoSQL (4)
        • MySQL (9)
        • MSSQL (3)
        • Error (4)
      • Algorithm (79)
        • Algorithm (문제풀이) (56)
        • Algorithm (이론) (23)
      • JVM (64)
        • Spring (13)
        • JPA (5)
        • Kotlin (13)
        • Java (23)
        • Error (7)
      • 기타 (68)
        • Kafka (3)
        • Kubernetes (3)
        • Docker (12)
        • git (19)
        • 잡동사니 (26)
      • 재테크 (11)
        • 세무 (4)
        • 투자 (3)
        • 보험 (0)
      • BlockChain (2)
        • BitCoin (0)
      • C (32)
        • C (10)
        • C++ (17)
        • Error (3)
      • Low Level (8)
        • OS (3)
        • 시스템 보안 (5)
      • 네트워크 (3)
      • LINUX (30)
        • Linux (26)
        • Error (4)
      • 저작권과 스마트폰의 이해 (0)
      • 생각 뭉치 (6)
      • 궁금증 (2)
      • Private (4)
        • 이직 경험 (0)
        • 꿈을 찾아서 (1)
      • Android (21)
        • OS (4)
  • 블로그 메뉴

    • 홈
    • WEB
    • 알고리즘
    • DataBase
    • Linux
    • Mobile
    • C
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Programmers
    android
    C++
    docker
    kafka
    linux
    JPA
    java
    Bitcoin
    프로그래머스
    database
    algorithm
    javascript
    Spring
    Git
    Kotlin
    ubuntu
    알고리즘
    PostgreSQL
    백준
  • hELLO· Designed By정상우.v4.10.3
M_Falcon
HTTP
상단으로

티스토리툴바