HTTP

박총명·2025년 2월 28일
post-thumbnail

🎈HTTP

웹상에서 데이터를 주고받기 위한 프로토콜, Hyperetext Transfer Protocol

주로 웹 문서(HTML)를 주고받기 위하여 사용하는 프로토콜로, 웹 뿐만 아니라 모바일 앱, 게임 개발에서도 다양한 목적으로 사용되곤 한다. 쉽게 설명하자면 웹 브라우저가 서버와 통신하는 규칙이다.

특징

  • 무상태성(Stateless) : HTTP는 상태를 저장하지 않는다
  • 비연결성(Connectionless) : 클라이언트는 HTTP로 서버에 연결한 뒤에, 응답을 받으면 연결을 끊어버린다. -> 서버 입장에서 접속 유지에 대한 요구가 적어, 불특정 다수를 대상으로 하는 서비스에 적합하다.
  • 세션을 이용해 원하는 기능이 수행되도록 할 수 있다

요청과 응답

요청

GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept-Language: ko-KR

응답

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2023 14:28:02 GMT
Server: Apache
Content-Type: text/html

<html>
...
</html>

Method

HTTP 메서드설명사용예시
GET데이터 조회를 요청특정 페이지 접속, 정보 검색
POST데이터 생성을 요청회원가입, 글쓰기
PUT데이터 수정을 요청회원 정보 수정
DELETE데이터 삭제를 요청회원 정보 삭제

Keep Alive 기능

HTTP 1.1 버전부터 keep-alive를 지원한다

하나의 웹 사이트에 방문하면 대개 수십 개의 파일(css, 이미지, html, js)를 제공한다. TCP 통신 과정에서 연결 수행/연결 해제 과정에서 리소스가 많이 소요된다. keep-alive는 이런 파일을 하나씩 받기 위하여 매번 연결을 맺고 끊는 것을 방지한다. 즉, persist하게 connection을 유지할 수 있도록하여 불필요한 연결의 맺고 끊음을 최소화시켜 네트워크 부하를 줄이는 것이다.

HTTP와 HTTPS의 차이점

HTTP
브라우저와 서버는 데이터를 일반 텍스트로 교환한다. 데이터를 암호화하지 않고 전송하여 데이터를 탈취 당할 수 있다.

HTTPS
이에 대한 보안을 강화하기 위해 만들어진 것이 HTTPS이다. 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 생성한다. HTTPS는 모든 요청 및 응답을 SSL(Secure Socket Layer) 및 TLS(Transport Layer Security) 프로토콜에 따라 암호화한다.

🔗참고자료

Keep-alive
Http vs Https

0개의 댓글