네트워크_HTTP

황호준·2023년 5월 31일

CS

목록 보기
15/29

HTTP(Hyper Text Transfer Protocol)

  • 인터넷에서 데이터를 주고받을 수 있는 프로토콜
  • HTTP 응답 코드는 5개로 분류 가능하며, HTTP status code의 첫 번째 숫자에 따라 response class가 달라진다.

응답코드

  • 1로 시작하는 경우 : 요청을 받았으며 프로세스를 계속함
  • 2로 시작하는 경우 : 요청을 성공적으로 받았으며 인식했고 수용했음
  • 3으로 시작하는 경우 : 클라이언트의 요청에 대해 적절한 위치를 제공하거나 대안의 응답을 제공
  • 4로 시작하는 경우 : 클라이언트의 잘못된 요청

  • 5로 시작하는 경우 : 정상적인 클라이언트의 요청에 대해 서버의 문제로 인해 응답할 수 없음

HTTP METHOD

  • 서버에서 주어진 리소스에 수행하길 원하는 행동을 나타냄
  1. GET : 리소스를 검색하고, 반환받기 위해 사용되는 메소드,원하는 정보를 서버에 요청할 때 쓰임 (일반적으로) 리소스의 위치를 URL에서 쿼리로 표현하기 때문에 RequestBody가 없다.
  2. HEAD : 서버의 각종 정보를 확인하기 위해 사용되는 메소드이다. GET과 동일하지만, response에 Body가 없고 response Code와 Head만 응답받는다.
  3. POST : 요청된 자원을 생성하기 위해 사용되는 메소드, POST로 정보를 전송하면 URL에 파라미터가 나타나지 않으므로 각종 데이터를 전송하는데 쓰인다.
  4. PUT : 요청된 자원을 수정하기 위해 사용되는 메소드
  5. PATCH : 요청된 자원을 수정하기 위해 사용되는 메소드에서 PUT과 같으나, 해당 자원 전체를 수정하는 PUT과는 다르게 PATCH는 해당 자원 일부분을 수정
  6. DELETE : 요청한 자원을 삭제하기 위해 사용되는 메소드, 클라이언트에서 서버의 자원을 삭제할 수 있도록 허가하는 것은 매우 위험기에 현실적으로 사용할 일은 거의 없고, 대부분 서버는 이 메소드를 비활성화 시킨다.
  7. TRACE : 루프백 메시지를 호출하기 위해 테스트용으로 사용되는 메소드
  8. OPTION : 웹서버에서 지원하는 메소드를 알기위해 사용되는 메소드
  9. CONNECT : 프락시 기능을 요청할 때 사용되는 메소드

HTTP 1.1 vs HTTP 2.0

  • HTTP1.1은 기본적으로 연결당 하나의 요청과 응답을 처리하기 때문에 동시전송 문제와 다수의 리소스를 처리하기에 속도와 성능 이슈를 가짐 -> (특정 응답지연,RTT(ROUND Trip Time) 증가,헤비한 HEADER구조)
  • HTTP2는 위의 문제점 대비 성능을 높였다. 한 커넥션에 여러 개의 메시지를 동시에 주고 받을 수 있으며(Multiplexed Streams) 요청 (Stream Prioritization)리소스간의 의존관계 설정, HTML문서상에 필요한 리소스를 클라이언트 요청없이 보내줄 수 있는(Server Push) 등 성능과 속도면에서도 월등하다.

HTTPS

  • HTTP 프로토콜의 보안 버전 -> SSL(보안 소켓 계층)을 사용함으로써 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고 서버 브라우저가 민감한 정보를 주고받을 때 도난 당하는 것을 막아줌 -> 안정성이 높아 사용자가 방문하기에 선호도가 높으며 검색엔진에 혜택을 받는다.
profile
기록 블로그

0개의 댓글