HTTP header & body

이태곤·2023년 8월 14일
0

Network

목록 보기
7/23
post-thumbnail

HTTP

  • 웹 서버와 웹 브라우저 간의 통신을 위한 응용 계층의 프로토콜

  • 특징

    • Stateless: 서버는 클라이언트의 이전 요청에 대한 정보를 유지하지 않는다.
      • 확장성: 개별 클라이언트의 세션 정보를 유지할 필요가 없기 때문에 매번 들어오는 클라이언트의 요청에 어느 서버가 응답하더라도 상관이 없어진다.
        → 서버가 장애가 발생하더라도, 해당 요청을 다른 서버에서 처리함으로써 영속성을 유지 할 수 있다.
      • 서버에 클라이언트에 대한 정보가 없으므로, 클라이언트는 필요한 데이터를 얻기 위해 한 번에 많은 양의 데이터를 전달해야 한다.
        → 쿠키, 세션 등으로 어느정도 해결 할 수 있음
    • HTTP uses TCP: 3-Way handshaking을 통한 연결을 수립 → 데이터를 주고 받기 → 4-Way handshaking을 통한 연결 종료
  • HTTP format

    • request line: 요청 메서드 (GET, POST, 등), URL, 및 HTTP 버전이 포함
    • header: 요청의 메타데이터가 포함되며, 언어, 인코딩 방식, 쿠키 등
    • body: 실제 요청 데이터 본문

1. HTTP 헤더

  • HTTP 요청과 응답 메시지의 메타 정보를 전달하는 데 사용되며, 일반적으로 "General Headers," "Response Headers," 그리고 "Request Headers"와 같이 세 가지 주요 부분으로 구성된다.

  • 헤더 필드의 이름과 해당 값 사이에 콜론(:)으로 구분된 key-value 형태를 가진다.

  • General: 요청 및 응답 메시지와 관련된 메타 정보를 포함
  • Request Headers: 클라이언트가 서버로 보내는 헤더 정보를 포함
    → User-Agent, 인증 정보, 원하는 콘텐츠 유형, 쿠키 등
  • Response Headers: 서버가 클라이언트로 전송하는 헤더 정보를 포함
    → 서버 소프트웨어 정보 등이 담기지만 보안을 위해 서버정보를 숨기는게 일반적
    → 헤더는 굉장히 유연하게 설정되어 새로운 Key - Value 값들을 생성할 수 있지만, 보통은 지정되어있는 Key 값에 Value를 담아서 헤더를 설정

2. HTTP 바디

  • HTTP 요청 또는 응답의 일부로, 실제 데이터 또는 컨텐츠가 포함된 부분

  • 요청한 데이터 또는 서버에서 클라이언트로 전송하고자 하는 정보를 포함하며, 다양한 형식(예: JSON, XML, HTML, 이미지 등)으로 구성될 수 있다.

1개의 댓글

comment-user-thumbnail
2023년 8월 14일

큰 도움이 되었습니다, 감사합니다.

답글 달기