[Network] HTTP 프로토콜 개념, HTTP와 HTTPS의 차이, GET과 POST의 차이

EUN JY·2022년 2월 13일
1

Network

목록 보기
1/1
post-thumbnail

1. HTTP 프로토콜

  • 클라이언트와 서버가 인터넷 상에서 데이터를 주고 받기 위해 쓰이는 프로토콜
  • TCP/IP를 이용하는 프로토콜
  • HTML 문서, 텍스트, 이미지, 비디오, 오디오 파일 등 어떤 종류의 데이터든지 전송 가능

1-1. HTTP 특징

  • 서버/클라이언트 모델
    • 클라이언트에서 request를 보내면 서버는 response
  • Connectionless
    • request 시 서버에 연결하고, 응답을 받으면 연결을 끊음
    • 최소한의 접속 유지로 많은 유저의 요청 처리
    • 클라이언트의 이전 상태를 알 수 없음 (Stateless)
    • Cookie를 이용하여 해결 가능

2. HTTP와 HTTPS

2-1. HTTP

  • 평문 통신이라 도청이 가능
    • TCP/IP 통신은 통신 경로 상에서 엿볼 수가 있음
    • SSL 또는 TLS 프로토콜을 조합하여 암호화할 수 있음
    • HTTP에 SSL을 조합한 것을 HTTPS라고 함
  • 통신 상대를 확인하지 않기 때문에 위장 가능
    • Request 보낸 곳이 Response를 반환해야 하는 곳이 맞는지 확인할 수 없음
    • 접근 허가된 통신 상대인지 확인 불가
    • 유효하지 않은 Request도 수신함 > DoS 공격에 취약함
  • 완전성을 증명할 수 없어 변조 가능
    • 서버와 클라이언트 사이에 수신되는 내용이 실제 송신한 내용과 일치하지 않을 수 있음
    • 중간자 공격 : 공격자가 중간에서 내용을 가로채 변조하는 공격

2-1-1. SSL

  • HTTP 프로토콜 암호화 방법
  • 제 3자 기관으로부터 발행되는 증명서를 바탕으로 상대를 확인
  • 클라이언트 본인 확인, 웹 사이트 인증 등에 활용됨

2-2. HTTPS

  • HTTP는 TCP와 직접 통신
  • HTTPS는 SSL과 통신하고 SSL이 TCP와 통신하는 방식
  • 암호화 및 증명서를 이용할 수 있음

3. GET과 POST

3-1. GET

  • 요청 데이터가 Header 부분에 담겨 전송됨
  • url 주소 뒤에 데이터가 담기므로 전송되는 데이터의 크기가 제한적이고 보안에 취약하다.

3-2. POST

  • 요청 데이터가 Body 부분에 담겨 전송됨
profile
개린이

0개의 댓글