Http와 Https의 차이

P.W.J·2023년 4월 14일
1

BackEnd

목록 보기
1/5
post-thumbnail

HTTP

  • HTTP는 Hyper Text Transfer Protocol의 두문자어로, 인터넷에서 데이터를 주고받을 수 있는 프로토콜입니다.
  • 프로토콜은 규칙이라고 생각하시면 됩니다. 이렇게 규칙을 정해두었기 때문에, 모든 프로그램이 이 규칙에 맞춰 개발해서 서로 정보를 교환할 수 있게 된 것이다.
  • HTTP는 하이퍼텍스트 전송 프로토콜(HyperText Transfer Protocol)이다.
  • HTTP는 1989년부터 1991년에 발명되었다
  • .HTTP는 월드 와이드 웹(WWW)에 내재된 프로토콜이다.
  • HTTP는 인터넷에서 데이터를 주고 받을 수 있는 프로토콜이다.

프로토콜(Protocol)이란?

  • 프로토콜 규칙(약속)이란 의미한다.
  • 컴퓨터 네트워크(관게망)에서 데이털를 주고받을 때, 이러한 규칙에 맞춰 개발함으로써 서로 정보를 교환할 수 있게 된 것이다.
  • 컴퓨터 네트워크에서 데이터를 보내고 받는 성격에 따라 프로토콜이 만들어졌다,
  • 웹 문서를 주고 받을 때는 HTTP를 사용해야하고 파일을 주고 받을 때는 FTP, 메일은 SMTP, POP 등 전송 계층과 유형에 따라 다양하게 만들어져있다.
  1. 클라이언트, 서버 모두 HTTP를 이용해 통신 하므로 웹 개발자라면 HTTP를 잘 알아야한다.
  2. 에러를 해결하는데도 HTTP 지식이 중요하다. (CORS, CORB 에러 등)

HTPPS와 HTPP의 차이점

  • HTTP(Hypertext Transfer Protocol)
  • HTTPS(Hypertext Transfer Protocol secure)
  • HTTP 프로토콜의 문제점으로 서바에서부터 브라우저로 전송되는 정보가 암호화화 되지 않아 데이터가 쉽게 도난 될 위험성이 있다는 것이다.
  • HTPPS 프로토콜은 SSL(보안 소켓 계층)을 사용함으로써 이 문제를 해결 할 수 잇었다.
  • SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고 서버 브라우저가 민감한 정 보를 주고 받을 때 도난당하는 것을 막아준다.

HTPPS와 HTPP의 차이점

  • HTTP(Hypertext Transfer Protocol)
  • HTTPS(Hypertext Transfer Protocol secure)
  • HTTP 프로토콜의 문제점으로 서바에서부터 브라우저로 전송되는 정보가 암호화화 되지 않아 데이터가 쉽게 도난 될 위험성이 있다는 것이다.
  • HTPPS 프로토콜은 SSL(보안 소켓 계층)을 사용함으로써 이 문제를 해결 할 수 잇었다.
  • SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고 서버 브라우저가 민감한 정 보를 주고 받을 때 도난당하는 것을 막아준다.

image-20221005141130479


HTTP의 특징

  • 클라이언트 서버 구조
    • Request Response 구조
    • 클라이언트는 서버에 요청을 보내고 응답을 대기
    • 서버가 요청에 대한 결과를 만들어 응답
  • 무상태 포로토콜
    1. 서버가 클라이언트 상태를 보존하지 않음
    2. 장점 : 서버 확장성 높음 (스케일 아웃)
    3. 단점 : 클라이언트가 추가 데이터 전송
  • 비 연결성
    1. HTTP는 기본이 연결을 유지하지 않는 모델
    2. 일반적으로 초 단위 이하의 빠른 속도로 응답
    3. 트래픽이 많고 큰 규모의 서비시를 운영 할때는 한계를 보인다.

HTTP 상태코드

  • 1xx(정보) :

    요청을 받았으며 프로세스를 계속 진행합니다.

    • 100 Continue : 진행 중임 의미하는 응답코드
    • 101 Switching Protocol : 101은 클라이언트에 의해 보낸 업그레이드 요청 헤더에 대한 응답으로 보내집니다.
    • 102 Processing(WebDAV) : 서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없음을 알려줍니다
  • 2xx(성공) :

    요청을 성공적으로 받았으며 인식했고 수용하였습니다.

    • 200 OK : 요청이 성공적으로 되었으며 정보는 요청에 따른 응답으로 반환된다.
    • 201 Created : 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성 되며 이 응답은 일반적으로 POST 요청 또는 일부 PUT 요청 이후에 따라온다.
    • 204 No Content : 성공적으로 처리했지만 컨텐츠를 제공하지는 않는다. 일반 사용자가 볼 일은 거의 드물며 처리 결과만 중요한 API 요청 등에서 주로 사용한다.
  • 3xx(리다이렉션) :

    요청 완료를 위해 추가 작업 조치가 필요합니다.

    • 301 Moved Permanently : 이 응답 코드는 요청한 리소스의 URI가 변경되었음을 의미합니다. 새로운 URI가 응답에서 아마도 주어질 수 있습니다.
    • 302 Found : 이 응답 코드는 요청한 리소스의 URI가 일시적으로 변경되었음을 의미합니다. 새롭게 변경된 URI는 나중에 만들어질 수 있습니다. 그러므로, 클라이언트는 향후의 요청도 반드시 동일한 URI로 해야합니다.
    • 303 See Other : 클라이언트가 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때, 서버가 클라이언트로 직접 보내는 응답입니다.
  • 4xx(클라이언트 오류) :

    요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.

    • 400 Bad Request : 이 응답은 잘못된 문법으로 인하여 서버가 요청을 이해 할 수 없음을 의미한다.
    • 401 Unauthorized : 비록 HTTP 표준에서는 '미승인(unauthorized)'를 명확히 하고 있지만, 의미상 이 응답은 '비인증(unauthenticated)'를 의미합니다.
    • 403 Forbidden : 클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않습니다. 예를 들어, 그들은 미승인이어서 서버는 거절을 위한 적절한 응답을 보냅니다. 401과 다른 점은 서버가 클라이언트가 누구인지 알고 있습니다.
    • 404 Not Found : 서버는 요청받은 리소스를 찾을 수 없습니다. 브라우저에서는 알려지지 않은 URL을 의미합니다.
    • 405 Method Not Allowed : 요청한 메소드는 서버에서 알고 있지만, 제거되었고 사용할 수 없습니다. 예를 들어, 어떤 API에서 리소스를 삭제하는 것을 금지할 수 있습니다. 필수적인 메소드인 GET과 HEAD는 제거될 수 없으며, 이 에러 코드를 리턴할 수 없습니다.
    • 409 Conflict : 요청이 현재 서버의 상태와 충돌될 때 보냅니다.
    • 429 Too Many Requests : 사용자가 지정된 시간에 너무 많은 요청을 보냈습니다("rate limiting").
  • 5xx(서버 오류) : 서버가 명백히 유효한 요청에 대한 충족을 실패했습니다.

0개의 댓글