Spring/Springboot-Intellij

[HTTP] HTTP(HyperText Transfer Protocol)

congs 2025. 1. 28. 12:20

HTTP

  • 컴퓨터끼리 데이터를 주고 받을 때 정해진 통신 규약 중 하나
  • 대부분의 브라우저는 HTTP 프로토콜을 기본으로 지원

 

Reauest : 브라우저가 서버에게 원하는 정보 요구

Response : 서버는 브라우저가 원하는 정보를 실어 응답/ 없다면 없는 페이지 반환

 

 

 

 

 

HTTP의 구성요소

 

  • Method (호출/요청 방식)
    • GET: 어떤 리소스를 얻을 때 사용. 브라우저의 주소창에 URL을 입력하면 -  GET 메서드를 사용해서 서버에 요청
    • POST: 웹 서버에 데이터를 게시할 때 사용 (ex. 회원가입, 게시글 작성, 댓글 작성)
    • 그외 DELETE 등이 있음
  • Header (추가 데이터. 메타 데이터)
    • 브라우저가 어떤 페이지를 원하는지
    • 요청 받은 페이지를 찾았는지
    • 요청 받은 데이터를 성공적으로 찾았는지
    • 어떤 형식으로 데이터를 보낼지
    GET naver.com HTTP/1.1
    • 이외에도다양한 표현을 위한 데이터를 모두 Header 필드에 넣고 주고 받음
    • 위에서 설명 된 메서드도 헤더에 포함되어 서버로 보냄
  • Payload (데이터. 실제 데이터) = body
    • 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있음
    • 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있습니다.
    • "GET method를 제외하곤 모두 Payload를 보낼 수 있음" 
    • 예)html
      <!DOCTYPE html>
      <html>
        <head><title>By @ResponseBody</title></head>
         <body>Hello, Spring 정적 웹 페이지!!</body>
      </html>

 


실제로 어떻게 보이는지 구글에서 확인해보자!

 

구글 페이지의 개발자 도구로 들어가서 -

Network 탭

  •  network 탭에 나오는 목록 : 현 페이지를 보여주기 위해 서버에서 받아온 데이터의 목록

 

Header 탭

  • General : 브라우저가 서버로 보낸 Request 데이터
  • Status Code : 브라우저와 서버간의 요천, 응답 과정에서 발생한 상황을 표현 (첫번째 자리는 코드의 분류)
    1. 1xx : information 요청수신, 처리중 (연결상태확인 용도)
    2. 2xx : succesful 성공적 처리-제공
    3. 3xx : redirection 클라이언트의 추가적 조치원함 (주로 페이지 이동)
    4. 4xx : client error  클라이언트의 잘못된 요청, 오류 (404 = 요청한 페이지나 리소스를 서버에서 찾을 수 없음)
    5. 5xx : server error 서버오류, 과부화 (500 = 서버 내부 오류발생)
  • Request Headers 탭 :  : 브라우저에서 서버로 보낸 request  데이터

  • Response Headers 탭 : 서버가 웹 페이지 데이터와 함께  보낸 추가 데이터

 

Response 탭

  •  서버에서 브라우저로 반환해준 웹 페이지를 그리기 위한 데이터