HTTP Request와 Response

kkily·2024년 4월 26일
0

Spring

목록 보기
1/3
post-thumbnail

HTTP Request란?

Start Line

GET /test.html HTTP/1.1
[HTTP Method] [Request target] [HTTP version]

HTTP method는 요청의 의도를 담고 있는 GET, POST, PUT, DELETE 등이 있다.
Request target은 HTTP Request가 전송되는 목표 주소이다.
HTTP version은 version에 따라 Request 메시지 구조나 데이터가 다를 수 있어서 version을 명시한다.

headers

해당 request에 대한 추가 정보(addtional information)를 담고 있는 부분

  • Host: 요청하려는 서버 호스트 이름과 포트번호
  • User-agent: 클라이언트 프로그램 정보. 이 정보를 통해 서버는 클라이언트 프로그램(브라우저)에 맞는 최적의 데이터를 보내줄 수 있다.
  • Referer: 바로 직전에 머물렀던 웹 링크 주소
  • Accep:t 클라이언트가 처리 가능한 미디어 타입 종류 나열
  • If-Modified-Since: 여기에 쓰여진 시간 이후로 변경된 리소스 취득. 페이지가 수정되었으면 최신 페이지로 교체한다.
  • Authorization: 인증 토큰을 서버로 보낼 때 쓰이는
  • HeaderOrigin: 서버로 Post 요청을 보낼 때 요청이 어느 주소에 시작되었는지 나타내는 값. 이 값으로 요청을 보낸 주소와 받는 주소가 다르면 CORS(Cross-Origin Resource Sharing) 에러가 발생한다.
  • Cookie: 쿠키 값이 key-value로 표현된다.

body

HTTP Request가 전송하는 데이터를 담고 있는 부분
전송하는 데이터가 없다면 비어있을 수 있다.

내 의견)

나는 3가지 모두 중요하다고 생각한다. 왜냐하면 세가지 모두 응답을 받기위한 필수적인 요소이기 때문이다. 하나라도 잘못되면 요청이 제대로 가지 않아서 원하는 응답을 받을 수 없다.

HTTP Response란?

Status Line

HTTP 버전 정보와 상태 코드

상태코드)

1xx(정보) : 요청을 받았으며 프로세스를 계속 진행합니다.
2xx(성공) : 요청을 성공적으로 받았으며 인식했고 수용하였습니다.
3xx(리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요합니다.
4xx(클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.
5xx(서버 오류) : 서버가 명백히 유효한 요청에 대한 충족을 실패했습니다.

Headers

브라우저가 필요한 정보 전달
Server : 웹 서버 정보
Access-Control-Allow-Origin
Allow

Body

브라우저가 요청한 데이터
전송하는 데이터가 없다면 비어있을 수 있다.

짝꿍의 의견)

구조에 나와있는 3가지 모두 주요 요소라고 생각한다.
Request가 실패했는지, 성공했는지 알아야 할 필요성이 있고, Headers를 통해 브라우저가 필요한 정보를 전달해야 CORS 등 문제 없이 Body의 요청 데이터를 브라우저에 올바르게 띄울 수 있다.

profile
낄리의 개발 블로그╰(*°▽°*)╯

0개의 댓글

관련 채용 정보