[Computer] HTTP/HTTPS

2025. 3. 30. 16:28·Computer

HTTP가 뭔가요?

HTTP(Hypertext Transfer Protocol)는 클라이언트(웹 브라우저)와 서버가 데이터를 주고받기 위한 통신 규약

  • 웹 문서, 이미지, 음성, 영상, 파일, JSON, XML 등 거의 모든 형태의 데이터를 전송함
  • URL로 접속할 때 http://로 시작하면 해당 주소의 데이터를 HTTP 통신 규약에 따라 주고받는 것을 의미함

서버 간에 데이터를 주고받을 때 대부분 HTTP라는 프로토콜을 사용해서 통신한다고 보면 된다. 예를 들어 인터넷 주소를 지정할 때 http://www.naver.com와 같이 시작하는 것은 www.naver.com이라는 인터넷 주소가 가진 데이터 정보 등의 교환을 HTTP의 통신 규약대로 처리하라는 것을 의미한다고 볼 수 있다.


그럼 HTTP랑 HTTPS의 차이가 뭔가요?

HTTPS(HyperText Transfer Protocol Secure)는 HTTP에 보안 기능을 더한 프로토콜

즉, 클라이언트(브라우저)와 서버가 데이터를 주고받을 때,
암호화를 통해 제삼자가 중간에서 데이터를 엿보거나 위변조 하지 못하도록 보호해 준다

HTTPS는 기본적으로 443번 포트를 사용하며, 데이터 암호화에는 TLS(또는 SSL) 프로토콜이 사용

http://www.ktword.co.kr/test/view/view.php?m_temp1=648

위 웹 사이트는 http 프로토콜로 데이터를 주고받는 사이트인데  기본적으로 브라우저에서 보안 경고를 띄워준다!

chrome
Chrome
Edge

실제로 아무 웹사이트나 들어가서 f12를 눌러 개발자 모드를 켜보자. Mac 환경은 -> 검사

Chrome 개발자모드

네트워크 탭으로 가서 웹사이트의 프로토콜을 살펴보면
사용자가 요청한 하나의 화면을 불러오기 위해  많은 유형의 데이터들이 어떻게 요청되고 응답됐는지 볼 수 있다.

h3부터 가끔 h2, http/1.1 이렇게 나와있는데 이는 사용된 http 프로토콜의 버전을 나타낸다.

현재는 대부분 h2~h3 프로토콜을 사용하지만,
각 프로토콜 버전이 증가할 때마다 파일을 주고받는 방식과 속도가 개선되어 왔다고 생각하면 편하다

 

HTTP의 진화 - HTTP | MDN

HTTP (HyperText Transfer Protocol)은 월드 와이드 웹의 기반이 되는 프로토콜입니다. 1989년부터 1991년까지 Tim Berners-Lee와 그의 팀이 개발한 HTTP는 유연함을 형성하는 동시에 단순함을 지키는 데 도움이

developer.mozilla.org


HTTP 이거 왜 쓰나요?

HTTP 통신은 클라이언트(Front-End)와 서버(Back-End)로 나뉜 구조로 되어있다.

클라이언트가 요청(Request)하면 서버가 응답(Response) 함!

예를 들어 클라이언트가 HTTP 메시지를 만들어 보내고, 서버에서 요청에 대한 응답이 올 때까지 기다린다.

그리고 서버는 요청에 대한 결과를 만들어서 응답한다.

동작형태가 클라이언트/서버 모델로 동작

이러한 구조 덕분에 웹 애플리케이션은 사용자 인터페이스와 데이터 처리 로직을 분리하여 효율적으로 운영할 수 있다


왜 클라이언트랑 서버를 분리해야 하나요?

그 이유는 각자의 역할에 집중할 수 있기 때문 클라이언트에서는 복잡한 비즈니스로직이나 데이터를 다룰 필요 없고, UI를 그리는데 집중할 수 있다.

서버에서는 복잡한 비즈니스 로직이나, 데이터를 다루는데만 집중하면 된다.

만약 트래픽이 폭주해 고도화가 필요한 경우 클라이언트는 신경 쓰지 않고 서버만 개선하면 된다. 즉, 클라이언트와 서버를 독립적으로 구분한다는 것은 각자의 책임을 나눠 해당 책임에만 집중하여, 클라이언트와 서버 양쪽이 각각 독립적으로 고도화할 수 있다는 것이다.


HTTP 통신의 대표 메서드 두 가지 GET, POST

GET 메서드

GET 메서드는 서버로부터 정보를 조회하기 위해 사용됨. 

이 메서드는 요청할 때 필요한 데이터를 URL의 쿼리 스트링에 포함시켜 전송하는데, 예를 들어, https://www.google.com/search?q=감자 같이 URL에 데이터를 붙여서 보내는 방식

  • 데이터 노출: URL에 데이터가 포함되므로 누구나 볼 수 있어 보안에 취약
  • 데이터 길이 제한: URL 길이에 제한이 있어 전송할 수 있는 데이터의 크기가 제한적
  • 캐싱 가능: 브라우저가 요청을 캐싱하므로, 같은 요청을 반복할 때 서버에 불필요한 부하를 줄일 수 있음
  • 멱등성: 여러 번 요청하더라도 서버의 상태가 변하지 않으므로 안전한 요청 방식

쉽게 말해 브라우저 URL입력창에 입력하는 건 GET요청이라고 생각하면 편하다

POST 메서드

POST 메서드는 서버에 데이터를 전송하여 새로운 리소스를 생성, 기존 리소스를 수정할 때 사용,

이 메서드는 전송할 데이터를 HTTP 요청의 본문(body)에 담아서 서버로 보냄

  • 데이터 숨김: 데이터가 요청 본문에 포함되어 URL에 노출되지 않으므로 비교적 안전
  • 데이터 길이 제한 없음: 요청 본문에 데이터를 담기 때문에 전송할 수 있는 데이터의 크기에 제한이 거의 없음
  • 캐싱 불가: 브라우저가 요청을 캐싱하지 않으므로, 매번 서버에 요청을 보냄
  • 멱등성 아님: 같은 요청을 여러 번 보내면 서버의 상태가 변할 수 있으므로 주의가 필요함

다시 개발자 모드로 가서 로드된 브라우저창에서 응답된 아무 요청이나 열어보자 

GET요청

방금 위에서 GET 요청은 브라우저의 URL 창에 치는 것과 똑같다고 했다,
그렇다면 위 요청 URL을 그대로 긁어서 브라우저 검색창에 넣어보자

내 프로필사진이였네

내 구글 프로필사진이 요청되었고 똑같이 잘 가져와진다.
HTTPS 요청은 텍스트나 웹파일뿐만 아니라  jpg 데이터도 요청하고 응답받을 수 있다.

마찬가지로 구글 favicon.ico 도 https 프로토콜, GET 요청으로 요청되고 응답된다.


그렇다면 POST 요청으로 들어온 파일은 어떻게 확인할까?

youtube 로그 같은 게 post 요청/응답되었는데 한 번 확인해 보자
GET요청이 아니기 때문에 당연히 브라우저 URL에서 요청하면 에러가 날 테니 postman을 사용해 요청해 보자

빈 응답이 왔지만 200 OK 정상적으로 요청되고 응답된 것이 확인된다!

 

 

HTTP 프로토콜 | 토스페이먼츠 개발자센터

HTTP(Hypertext Transfer Protocol)는 웹에서 데이터를 주고받는 서버-클라이언트 모델의 프로토콜입니다. 쉽게 설명하자면 웹 브라우저가 서버와 통신하는 규칙이에요.

docs.tosspayments.com

'Computer' 카테고리의 다른 글
  • [Computer] 정보처리기사 실기 - Application Test
  • [Computer] 10진 실수를 2진수로 변환
  • [Computer] 플립플롭 (Flip-Flop) (RS, JK, T, D)
  • [Computer] NOR R-S Latch, NAND R-S Latch
너굴먹
너굴먹
해랑사 을신당는 나
  • 너굴먹
    햄스터가 갱스터가 될때까지
    너굴먹
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • Dev (17)
      • Computer (6)
      • Project (7)
      • CodingTest (2)
      • 일상 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    아이패드 m4
    오답노트
    정보처리기사
    코딩테스트
    GithubAction
    R-S래치
    숫자 자료형
    AWS
    경기도갭이어프로그램
    RS래치
    roboflow
    소수 변환
    실수 변환
    c라이브러리
    trunk-based
    Lightsail
    파이썬
    필기
    숫 자료형
    cbt
    python
    정처기 필기
    10진수
    python #max #min #최댓값 #최솟값
    actions secrets and variables
    vercel
    플립플롭
    2진수
    YOLOv5
    래치
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
너굴먹
[Computer] HTTP/HTTPS
상단으로

티스토리툴바