HTTP 메세지는 크게 구분하면 메세지 헤더와 바디로 구성되어 있고, 최초에 나타나는 개행 문자(CR + LF)
로 메세지 헤더와 메세지 바디를 구분한다.
HTTP로 데이터를 전송할 경우 그대로 전송할 수도 있지만 전송할 때에 인코딩을 실시함으로써 전송 효율을 높일 수 있다. 전송할 때 인코딩을 하면 다량의 엑세스를 효율 좋게 처리할 수 있다. 단지, 컴퓨터에서 인코딩 처리를 해야 하기 때문에 CPU 등의 리소스는 보다 많이 소비하게 된다.
메일의 경우에는 메일의 본문이나 복수의 첨부 파일을 붙여서 함께 보낼 수 있다. 이것은 MINE
타입이라 하며, 다목적으로 불리는 메일로 텍스트나 영상, 이미지와 같은 여러 다른 데이터를 다루기 위한 기능을 사용하고 있다.
HTTP도 멀티파트에 대응하고 있어 하나의 메세지 바디 내부에 엔티티를 여러 개 포함시켜 보낼 수 있다. 주로 이미지나 텍스트 파일 등을 업로드할 때 사용되고 있다.
multipart/form-data: 폼으로부터 파일 업로드에 사용된다.
요즘처럼 사용자가 광대역의 네트워크를 이용할 수 있기 전에는 대용량의 이미지와 데이터를 다운로드하기가 힘들었다. 다운로드 하다가 중간 커넥션이 끊어지게 되면 다시 다운로드를 해야 했기 때문이다. 이러한 문제를 해결하기 위해서 일반적인 리줌(Resume)
이라는 기능이 필요하게 되었다.
Range: bytes = 5001-10000 (5001 ~ 10000 바이트)
Range: bytes = 5001 ~ (5001 바이트 이상)
위와 같이 HTTP Request Header Rage 필드를 사용해서 리소스의 바이트 레인지를 지정한다.
범위를 지정하여 요청을 보게 된다.