목록전체 글 (74)
과거의 내가 미래의 나에게
엔티티 헤더 필드는 리퀘스트 메시지와 리스폰스 메시지에 포함된 엔티티에 사용되는 헤더로 콘텐츠의 갱신 시간 같은 엔티티에 관한 정보를 포함한다. 1. Allow 리소스가 지원하는 메소드의 집합을 나열한다. 만약 서버가 받을 수 없는 메소드를 수신한 경우, 상태 코드 405 Method Not Allowed로 리스폰스 하되 반드시 Allow 헤더필드를 붙여 수신 가능한 메소드 목록을 클라이언트에 전달하도록 해야한다. 2. Content-Encoding 서버가 엔티티 바디에 대해서 실시한 콘텐츠 코딩 형식을 전달한다. Transfer-Encoding은 서버에 의해 적용되는 콘텐츠 전송 방식이고 Content-Encoding은 전달하는 콘텐츠의 형식을 나타낸다. 3. Content-Language 엔티티 바디..
* HTTP/1.1을 기준으로 작성되었습니다. 응답 헤더 필드는 서버에서 클라이언트로 송신하는 리스폰스 메시지에 쓰이는 헤더로, 리스폰스의 부가 정보와 서버의 정보 그리고 클라이언트에 부가 정보 요구 등을 나타낸다. 1. Accept-Ranges 클라이언트가 Range 헤더 필드를 통해 서버에게 리소스의 일부만을 요청할 수 있었는데, 이 때 서버가 부분 요청에 대해 응할 수 있는지 여부를 확인할 때 Accept-Ranges 헤더 필드를 사용한다. 서버가 리소스의 일부만을 줄 수 있는지 여부를 알려주는 헤더 필드이다. 클라이언트는 해당 헤더를 보고 가능하다면 Range 헤더 필드로 리소스의 일부를 받아올 수 있다. 값으로는 bytes와 none이 있는데, bytes는 일부 요청이 가능하다는 것이고 none..
배열에 대한 가공을 할 때 사실 for문과 if문이면 모든 것을 할 수 있다. 그럼에도 JS에서는 많은 배열함수가 존재한다. 이 배열함수들은 심지어 for문보다 퍼포먼스가 약간 떨어진다고 알고 있는데, 그렇다면 왜 배열함수들은 이렇게나 많고 사람들은 for문보다 배열함수를 더 자주 쓸까? 그 이유는 사람끼리 소통할 때 더 원활히 하기 위함이다. for문을 코드에 잔뜩 써놓게되면 읽는 사람들은 그 코드가 무엇인지 해석하기 위해 힘을 들여야한다. 하지만 배열 함수를 쓰면 이 함수가 어떤 목적으로 쓰이는 것인지 좀 더 수월하게 알 수 있고 그 의미에 따라 함수를 작성하기에 코드의 길이도 줄일 수 있는 것이다. 배열함수가 코드의 의미를 분명히 하기 위해 쓰인다하면, 이미 배열함수를 자주 쓰고 익숙하지만 한 번 ..
* HTTP/1.1을 기준으로 작성되었습니다. 리퀘스트 헤더 필드는 클라이언트에서 서버로 송신하는 리퀘스트 메시지에 쓰이는 헤더로, 리퀘스트의 부가 정보와 클라이언트 정보 그리고 리스폰스 콘텐츠에 관한 우선 순위 등을 추가한다. 1. Accept 클라이언트에서 서버에게 자신이 원하는 미디어 타입과 미디어 타입의 우선순위를 전달하기 위해 사용된다. 왼쪽은 주 타입이고, 오른쪽은 보조 타입이다. 텍스트 파일: text/html, text/plain, text/css, application/xml... 이미지 파일: image/png, image/gif... 동영상 파일: video/mpeg, video/quicktime... 애플리케이션 바이너리 파일: application/zip... ..
원인된 상황 페이지를 띄운 후 웹소켓으로 데이터가 들어올 때마다 화면에 알람을 띄워주는 기능을 작업했으나 아래와 같은 에러가 뜨며 작동이 되지 않았다. DOMException: play() failed because the user didn't interact with the document first. 원인 브라우저마다 정책은 조금씩 다르지만, 기본적으로 자동 재생 기능을 차단하는 편이다. 여기서 자동 재생이란, HTML 속성("autoplay)을 통해 재생하거나 JS 코드(.play())를 통해 소리를 재생하게끔 하는 것이다. 브라우저에서 자동 재생을 제한하는 이유는 사용자 경험을 위함인데, 웹 페이지를 방문한 사용자들이 자신의 의사에 반해 소리가 재생된다면 불편을 느낄 수가 있으며, 또한 자동으로 ..