22.11.25 HTTP, HTTPS

Gon·2022년 11월 25일
0
post-thumbnail

HTTP(HyperText Transfer Protocol)란?

클라이언트와 서버 간의 자원을 교환하기 위한 TCP/IP 기반 통신 프로토콜(규약, 약속)

특징

  • 단방향성
    • 서버가 먼저 응답을 보낼 수 없고 클라이언트가 요청을 보내야만 응답할 수 있음
  • 비연결성(connectionless)
    • 클라이언트의 요청으로 서버와 연결된 후,
      요청에 대한 응답의 데이터를 전송하면 연결을 종료
  • 따라서, 실시간 통신을 할 수 없음

문제점

  • HTTP는 평문 통신이기 때문에 도청이 가능함
  • 통신 상대가 검증된 상대인지 확인하지 않기 때문에 위장이 가능함
  • 완전성을 증명할 수 없기 때문에 변조가 가능함

HTTP 메소드

클라이언트가 웹 서버에게 요청의 목적이나 종류를 알리는 수단

주요 메소드

  • GET
  1. 보통 리소스를 조회할 때 사용
  2. 서버에 전달하고 싶은 데이터는 query를 통해서 전달
  3. 메시지 바디를 사용해서 데이터를 전달할 수는 있지만, 지원하지 않는 곳이 많아서 권장하지 않음
  • POST
  1. 주로 리소스를 새롭게 생성할 때 사용
  2. 서버에 전달하고 싶은 데이터는 메시지 바디를 통해 전달
  • PUT
    리소스가 있으면 대체하고 리소스가 없으면 생성함. 즉, 데이터를 덮어씀

  • PATCH
    PUT과 마찬가지로 리소스를 수정할 때 사용하지만, PATCH는 리소스를 일부분만 변경할 때 사용

  • DELETE
    리소스를 제거할때 사용

HTTP 상태코드

클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주기 위한 정보

종류

  • 1xx (Informational): 요청이 수신되어 처리중
  • 2xx (Successful): 요청 정상 처리
    • 200 OK : 요청 성공
    • 201 Created : 요청 성공해서 새로운 리소스가 생성됨
    • 202 Accepted : 요청이 접수되었으나 처리가 완료되지 않았음
    • 204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음
  • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 (보통 리다이렉션처리)
    • 301 Moved Permanently : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
    • 302 Found : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
    • 303 See Other : 리다이렉트시 요청 메서드가 GET으로 변경
    • 304 Not Modified : 캐시를 목적으로 사용
    • 307 Temporary Redirect : 리다이렉트시 요청 메서드와 본문 유지(요청 메서드를 변경하면 안된다.)
    • 308 Permanent Redirect : 리다이렉트시 요청 메서드와 본문 유지(처음 POST를 보내면 리다이렉트도 POST 유지)
  • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
    • 400 Bad Request : 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음
    • 401 Unauthorized : 클라이언트가 해당 리소스에 대한 인증이 필요함
    • 403 Forbidden : 서버가 요청을 이해했지만 승인을 거부함
    • 404 Not Found : 요청 리소스를 찾을 수 없음
  • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함
    • 500 Internal Server Error : 서버 문제로 오류 발생, 애매하면 500 오류
    • 502 Bad Gateway: 게이트웨이(서로 다른 프로토콜을 연결해주는 장치)가 잘못된 프로토콜을 연결하거나, 어느쪽 프로토콜에 문제가 있어 통신이 제대로 되지 않은 상황
    • 503 Service Unavailable : 서비스 이용 불가

HTTPS

HTTP(HyperText Transfer Protocol)의 보안(Secured)버전
SSL/TLS 프로토콜을 사용해 HTTP를 암호화하여 주고 받을 때 쓰는 통신 프로토콜

0개의 댓글