
1. 그림으로 배우는 Http & Network
3장 HTTP 정보는 HTTP 메시지에 있다
컴퓨터에서 개행(새로운 줄로 이동)을 표현하는 데 사용되는 제어 문자의 조합
이 조합은 텍스트 파일이나 텍스트 기반의 데이터를 표현할 때 줄 바꿈을 나타내기 위해 사용
\r으로 나타내며, 행의 시작으로 커서를 이동시킨다."Hello\rWorld"에서 \r은 "Hello"와 "World" 사이에서 커서를 첫 번째 문자 "H"로 이동. 이후에 오는 문자열은 "Hello"를 덮어쓰게 된다.\n으로 나타내며, 커서를 다음 줄로 이동시킨다."Hello\nWorld"에서 \n은 "Hello"의 다음 줄로 커서를 이동시킨다.CR+LF는 초기 컴퓨터에서 사용되던 줄 바꿈 표시 방식으로, 특히 MS-DOS와 Windows 운영 체제에서 널리 사용되었다.
CR+LF와 LF는 각 운영 체제에서의 줄 바꿈 표시 방식의 차이로, 텍스트 파일을 다른 운영 체제로 이동할 때 주의해야한다.
기본 구조: 메시지 헤더 / 개행문자[CR+LF] / 메시지 바디
리퀘스트 라인
상태 라인
헤더 필드
그 외
HTTP로 데이터를 전송할 때 인코딩(변환)을 실시함으로써 전송 효율을 높일 수 있다.
컴퓨터에서 인코딩 처리를 해야 하기 때문에 CPU 등의 리소스는 보다 많이 소비하게 된다.
메시지 바디와 엔티티 바디의 차이
HTTP 메시지 바디의 역할: 리퀘스트랑 리스폰스에 관한 엔티티 바디를 운반
압축해서 보내는 콘텐츠 코딩(Content Codings)
분해해서 보내는 청크 전송 코딩
MIME(Multipurpose Internet Mail Extensions: 다목적 인터넷 메일 확장 사양)
HTTP도 멀티파트에 대응하고 있어 하나의 메시지 바디 내부에 엔티티 여러 개를 포함시켜 보낼 수 있다.
멀티파트 종류
HTTP 메시지로 멀티파트를 사용할 때에는 Content-type 헤더 필드를 사용
멀티파트 각각의 엔티티를 구분하기 위해 "boundary" 문자열 사용
멀티파트는 파트마다 헤더 필드가 포함된다.
파트의 중간에 멀티파트를 만드는 것과 같이 파트를 내부에 포함할 수 있다.
Range: bytes = 5001-10000Range: bytes = 5001-Range: bytes = 5001, 5000-7000