다음과 같은 질문을 받았다.
Q. HTTPS를 사용하면 클라가 데이터를 암호화해서 전달할 필요가 있나?
위 질문에 대해 고민을 해보고 깨달은 바가 있어서 글을 작성하게 되었다.
우선 이 질문에 대한 답은 없다.
다만 답이 될 수 있는 후보 중에 하나에 대해 글을 작성하고자 한다.
String 비교를 하는데
일반적으로 주소를 비교하기 위해서 ’==’
값을 비교하기 위해서 equals()를 사용한다.
이와 관련해서는 ’==’와 equals()의 차이 포스팅을 참고하자.
컴퓨터는 0, 1 숫자만 이해한다.
사람은 매우 다양한 언어를 사용한다.
그러므로 컴퓨터와 사람이 대화하기 위해선 중개자가 필요하다.
그 중개자 역할을 하는 게 유니코드이다.
유니코드는 다음과 같이 중개를 한다.
사람이 사용하는 모든 언어를 bit로 표현된 숫자로 매핑 해놓는다.
그 방법으로 모든 문자에 Index를 지정시킨다.
참고로 Index를 Code Point 혹은 Code Unit라 부르기도 한다.
'A'라는 글자는 0x0041이라는 Index를 가진다.
'a'라는 글자는 0x0061이라는 Index를 가진다.
'가 '라는 글자는 0xac00이라는 Index를 가진다.
이 글의 개념 및 코드들은 책을 읽으며 정리한 내용을 바탕으로 작성하였습니다.
일반적으로 클라이언트 -> 서버로 요청 시
문서 전체를 응답하거나 아예 응답하지 않거나 All or Nothing으로 응답한다.
하지만 특정 범위만 요구해야할 필요가 있을 수 있다.
예를 들어보자.
파일을 다운로드 받는데 1분이 필요하다 가정을 해보자.
유저가 59초동안 다운을 받다가
네트워크 커넥션의 장애로 인해 중간에 연결이 끊겼다.
그렇다면 다시 1분을 소요하여 다운받는게 합리적일까?
그렇지 않다.
1초동안 받지 못한 데이터에 대해서만 받는게
가장 합리적이다.
이런 상황에서 보다 합리적인 요청을 위해서
HTTP는 클라이언트가 문서의 일부분이나 특정 범위만 요청할 수 있도록 해준다.