본문 바로가기
JAVA 기반 웹개발/HTTP

HTTP 프로토콜 #1

by 거북이의 기술블로그 2024. 8. 23.
HTTP

 

HTTP 란?

  • HyperText Transfer Protocol (프로토콜)
  • 데이터 전송 및 요청/응답 구조를 위해 Web에서 많이 사용 
  • 요청 - 응답 구조 (무상태 구조를 사용)

 

 

HTTP 버전

  • TCP
    • HTTP/1.1 (주로 사용)
    • HTTP/2.0
  • UDP
    • HTTP/3.0

 

 

HTTP 메시지 전송 종류

  • html , text
  • json, xml
  • image, 음성, 영상, 파일
  • 거의 모든 형태

 

HTTP 특징

  • 클라이언트 - 서버 구조
    • 요청(클라이언트) - 응답(서버) 구조
  • 무상태(stateless)
    •  비연결성
    • 서버가 클라이언트 상태 보존x
    • 클라이언트의 상태가 보존이 안되기에, 정보를 추가적으로 보내야한다.
    • 요청에 대한 응답을하면 끝
    • 서버 확장이 쉬움
상태 유지 (stateful) 구조

[단점]
- 리소스를 많이 차지하게 됨
- 정보를 유지하고 있는 서버가 항상 응답해야함 ( 서버 확장의 어려움 )
- 장애가 날경우 스왑할 서버가 존재할 수 없음

 

 

HTTP 메시지 구조

Start-Line
field-Line

[message-body]

 

  • HTTP 요청 예시
GET /search?q=hello HTTP/1.1
Host : www.naver.com
  • 설명
    • Start-line
      • GET : HTTP 메서드  (GET, POST, PUT, DELETE.. )
      • PATH : 리소스 자원 위치
      • Query : 쿼리
      • 버전 : HTTP/1.1
    • field-line
      • HOST : 호스트 정보 (도메인명)

 

 

  • HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type : text/html; charset=UTF-8
Content-Length : 3423

<html>
//
</html>
  • Start Line
    • 버전 : HTTP/1.1
    • 상태코드 : 200 (sucess)
      • 상태코드 : 200 (Ok), 400 (클라이언트 오류) , 500( 서버오류 )
  • field Line
    • Content-Type : message body 형태 및 인코딩정보
    • Content-Length : message body의 길이

 

'JAVA 기반 웹개발 > HTTP' 카테고리의 다른 글

HTTP 프로토콜#3 ( 상태코드 )  (0) 2024.08.23
HTTP 프로토콜 #2 ( Method )  (0) 2024.08.23
URI, URL, URN  (1) 2024.08.23
인터넷 통신과정 ( + IP, TCP/UDP, PORT, DNS )  (0) 2024.08.23