클라이언트와 서버가 서로 요청과 응답을 주고받을 수 있는 것은 HTTP라는 통신 규약 덕분이다.

1 / 2 / 3

해당 request에 추가적인 정보가 들어가 있다.
클라이언트와 서버가 요청 또는 응답할떄 부가적인 정보를 전송할 수 있도록 해준다. HTTP 헤더는 대소문자를 구분하지 않는 이름과 콜론 ':' 다음에 오는 값(줄 바꿈 없이)으로 이루어져있다.
클라이언트에 데이터들이 담겨져 있다.
클라이언트가 정보 서버에 어떤 데이터들이 넘겨줘야 서버가 어떤 정보를 알려줄수 있는 메소드들이 있다, 그 내용의 유형은 Content-Type의해 결정된다.
예를들면 클라이언트가 사용자 정보를 서버에 알려주면서 팔로우나, 좋아요 여부를 응답받고 싶을떄 바디에 데이터를 넘겨준다.
모든 요청에 바디가 들어가지 않는다 GET, HEAD, DELETE, OPTIONS은 안들어간다,
POST와 같이 일부 요청은 업데이트를 하기 위해 서버에 데이터를 전송한다
.png)
1 / 2 / 3
Response의 body와 일반적으로 동일하다.
Request와 마찬가지로 모든 response가 body가 있지는 않다. 데이터를 전송할 필요가 없을경우 body가 비어있게 된다.
본문은 응답의 마지막 부분에 들어갑니다. 모든 응답에 본문이 들어가지는 않습니다. 201, 204과 같은 상태 코드를 가진 응답에는 보통 본문이 없다.
비연결성 (Connectionless) 과 무상태성 (Stateless)
비연결성은 클라이언트와 서버가 한번 연결을 맺은 후, 클리이언트의 요청 대해 서버가 응답을 마치면 맺었던 연결을 끊어 버리는 성질을 말한다.
장점: HTTP는 인터넷 상의 불특정 다수의 통신 환경의 기반으로 설계되었다. 만약 서버에서 다수의 클라이언트와 연결을 계속 유지해야 된다면 이에 따른 많은 리소스를 처리해야될 것이다, 따라서 연결을 유지하기 위한 리소스를 줄이면 더 많은 연결을 할 수 있으므로 비연결적인 특징을 갖습니다.
단점: 서버는 클라이언트를 기억하고 있지 않기 떄문에 클라이언트의 요청에 대해, 매번 새로운 연결시도/해제 과정을 거쳐야하므로 오버헤드가 발생한다.
비연결성으로 인해 HTTP는 이전의 상태정보나 현재 통신상태가 남아있지 않게 된다.
Response의 해더에서 세자리 숫자를 확인할 수 있다.
1xx (조건부 응답) Informational
2xx (성공) Successful
3xx (리다이렉션 완료) Redirection
4xx (클라이언트 요청 오류) Client Error
5xx (서버 오류) Server Error