HTTP(하이퍼텍스트 전송 프로토콜)
http는 주소창에 http://~로 시작하여 우리가 원하는 홈페이지를 찾을 수 있습니다.
이것은 HTTP가 서버와 클라이언트 사이의 데이터 교환을 위한 프로토콜이기도 한 네트워크 간의 통신에 사용되기 때문입니다.
또한 HTTP는 모든 유형의 데이터를 전송할 수 있도록 설계되었습니다.
클라이언트에서 요청을 보내고 응답할 때 데이터가 전달됩니다.
전달된 모든 데이터는 브라우저에서 렌더링하기 위한 것입니다.
즉, 들어오는 데이터는 html로 포맷되어 사용되며 텍스트로 구성됩니다.
그래서 원래 request.getParameter는 Servlet에서 보내면 문자든 숫자든 String으로 들어옵니다 숫자나 다른 표현은 타입 변환시에만 가능하지만 Spring 프레임워크가 스스로 타입을 찾기 때문에 프레임워크 내에서 자유롭게 데이터를 교환할 수 있습니다.
.
HTTP의 특징
- HTTP 메시지는 HTTP 서버와 클라이언트에 의해 해석됩니다.
여기서 HTTP 메시지는 모두 텍스트입니다. - TCP/IP를 사용하는 응용 프로토콜입니다.
컴퓨터 사이에 데이터를 주고 받을 수 있게 해주는 장치로 인터넷 통신망을 통해 필요한 데이터를 교환하는 기능을 이용한 응용 프로토콜이다. - 또한 HTTP는 상태 비저장 프로토콜이며 연결 상태를 유지하지 않습니다.
서버에 요청이 없으면 화면은 그대로 유지됩니다.
정상적인 상황에서 우리가 프로젝트를 진행하고 있을 때 네트워크가 끊어져도 서버에 요청을 보내지 않는 한 화면은 그대로 유지됩니다.
요청하면 새로 고칠 때까지 해당 상태를 유지하기 때문입니다.
요즘 Chrome은 주기적으로 새로 고쳐지므로 이러한 동작이 없는 것 같습니다.
- HTTP는 연결을 유지하기 위한 프로토콜이 아니기 때문에 요청 및 응답 측면에서 작동합니다.
HTTP의 장점과 단점
이점
불특정 다수를 위한 서비스. 서버와 클라이언트 간의 연결 상태가 지속적으로 유지되지 않으므로 클라이언트와 서버 간의 최대 연결 수를 초과하는 요청 및 응답을 처리할 수 있습니다.
피해
Stateless는 연결을 종료하므로 클라이언트의 이전 상태를 알 수 없습니다.
따라서 이러한 단점을 보완하기 위해 Token Cookie와 같은 기술이 등장했습니다.
HTTP 작동 방식
1. 연결: 클라이언트가 원하는 서버에 연결합니다.
2. 요청: 클라이언트가 서버에 요청을 보냅니다.
클라이언트가 서버에 데이터를 보내고 전달하는 과정을 요청이라고 합니다.
3. 응답: 서버가 요청 결과를 클라이언트에게 전달하는 것을 응답이라고 합니다.
응답이 완료된 후 서버와 클라이언트는 요청 연결을 끊습니다(상태 비저장).
HTTP 요청 메시지와 HTTP 응답 메시지에 주목해야 할 몇 가지 사항이 있습니다.
HTTP 요청 메시지
클라이언트가 서버에 요청을 보내면 요청 헤더에 데이터가 포함되어 전송되고 여기서 내가 어떤 요청을 원하는지 서버가 이해할 수 있도록 메서드가 결정되어 전송됩니다.
위에서 GET 요청을 보내고 POST PUT DELETE를 지정하여 필요한 경우 서버로 보낼 수 있습니다.
HTTP 응답 메시지
응답에서 주의해야 할 부분은 Statuts 코드 섹션입니다.
상태는 영어로 상태를 의미하며 위 그림에서 200ok는 수신 성공을 의미하며 필요에 따라 400 요청 오류 또는 500 서버 오류와 같이 서버에서 상태 코드를 알려줍니다.
오류가 발생했을 때 자신이 어떤 실수를 했는지 인지하고 이를 통해 쉽게 고칠 수 있도록 상태를 잘 알아야 하기 때문입니다.
요청 본문
요청 본문과 요청 헤더는 한 줄로 구분됩니다.
본문은 요청과 함께 보낼 데이터가 포함된 섹션입니다.
요청 방법이 POST 또는 PUT을 사용할 때 발생합니다.
GET 메서드는 리소스를 URL에 추가하여 요청과 함께 요청된 리소스를 가져옵니다.
따라서 GET 메서드에는 요청 본문이 없습니다.
응답 본문
빈 줄 뒤에는 실제 응답 리소스 데이터가 나타나는 섹션이 있습니다.
응답에는 일반적으로 본문이 있습니다.
일반적으로 데이터를 요청하고 요청한 데이터를 응답 메시지로 보내기 때문입니다.
응답 메시지에는 HTML이 포함되어 있으며 브라우저에서 수신되어 화면에 렌더링됩니다.