근데 어떤 페이지에서 보낸건 escape 처리가 안 되고 어떤 페이지에서 보낸 건 escape 처리가 되어있었다.
ajax로 보낸건 자동 이스케이프가 안 되는데 form을 만들어서 submit한건 자동 이스케이프 처리가 되는거임..
확인해보니 전송하는 데이터의 Content-Type이 text/html인 경우 escape 처리가 되는 듯 함.
자세한 설명 ..
text/html 콘텐츠에서는 특수 문자(예: `<`, `>`, `&` 등)가 올바르게 표시되고 HTML 문서의 구조를 방해하지 않도록 하기 위해 문자 이스케이프가 사용됩니다. 예를 들어, `<` 문자는 `<`로, `>` 문자는 `>`로, `&` 문자는 `&`로 이스케이프됩니다. 이는 이러한 문자가 HTML 태그나 엔터티로 해석되는 것을 방지하기 위해 수행됩니다.
반면 application/json 콘텐츠에서 문자 이스케이프는 주로 JSON 형식 자체로 표현되는 데이터와 관련이 있습니다. JSON에는 JSON 파서에서 데이터가 올바르게 구문 분석되고 해석되도록 하기 위해 문자열 내의 문자를 이스케이프하는 자체 규칙이 있습니다. 예를 들어 JSON 문자열 내의 큰따옴표(`"`)와 같은 특수 문자는 `\"`로 이스케이프되고 개행 문자는 `\n`으로 표시됩니다.
* 크로스 사이트(cross-site) 호출하는 URL이 도메인이 다른경우 혹은 http, https 와 같이 사용하는 프로토콜(scheme)이 다른 사이트의 경우 * 서드파티 쿠키 사용자가 접속한 페이지와 다른 도메인에서 발행한 쿠키 * 퍼스트파티 쿠키 사용자가 접속한 페이지의 도메인에서 발행한 쿠키
일반적으로 크로스 사이트(Cross-site)로의 쿠키전송은 안 됨. 서드파티 쿠키전송이 안 됨.
하지만 쿠키의 SameSite 속성 설정으로 서드파티 쿠키 전송을 가능하게 할 수 있다.
* SameSite 속성 SameSite 속성은 크로스사이트 요청에서 쿠키 전송을 제한하는 기능을 한다.
* 교차스킴 URL이 모두 동일한 등록 가능 도메인(예: site.example)을 가지고 있지만 스킴(프로토콜)은 서로 다르며(예: http://site.example과 https://site.example), 이를 교차 스킴이라고 한다.
2020년 이후로 구글에서 교차스킴에 대한 쿠키전송 정책을 변경한다고 했다. 이제 도메인이 같아도 프로토콜이 다르면 크로스사이트로 간주한다 이말인듯
아래의 교차 스킴 유형에 따라 쿠키 전송을 위한 SameSite 속성값이 다름..
1) case 1 - Navigation
페이지 이동하는 경우라고 생각하면 될 듯하다. 하이퍼링크를 클릭해서 페이지를 이동하거나 <a>를 클릭해서 이동하거나 windows.location.replace 로 자동으로 이동하거나, 302 리다이렉트를 통한 이동을 포함함. 쿠키의 SameSite 값에 따라 쿠키가 전송될수도, 안 될수도 있다.
2) case 2 - 하위 리소스 요청
페이지 내에서 iframe이나 script, fetch, XMLHttpRequest를 통해 url을 요청하는 경우
max-age=0 인 경우 캐시서버의 캐시된 entry에 대해서 원본서버(웹서버)로 유효성 검증을 다시하라는 의미. 유효성 검증을 다시 한다는 것은 캐시에 저장되어 있는 파일이 fresh한 상태라도 원본서버에 있는 파일과의 동일성 유무를 무조건 체크하라는 의미. -> 요청이 많을 경우 원본 서버에 부하를 일으킬 가능성이 있음.
2. no-cache
원본서버(웹서버)로부터 무조건 다시 읽어서 응답하라는 의미. max-age=0인 경우는 동일성 유무에 대해서만 매번 체크하지만 no-cache의 경우에는 무조건 원본서버에서 읽어 응답한다는 차이가 있다.
1. ftp-simple Extensions 설치 - VSCode 에서 FTP 접속을 도와주는 패키지 2. F1 검색 > ftp-simple config setting > 접속 정보 입력 (JSON) - 접속할 서버 및 경로 지정 3. F1 검색 ==> ftp-simple remote directory 선택 - 접속 연결