{"componentChunkName":"component---node-modules-stvad-gatsby-theme-garden-src-templates-roam-page-js","path":"/URL","result":{"data":{"roamPage":{"title":"URL","childMdx":{"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", {\n    \"id\": \"url\"\n  }, \"URL\"));\n}\n;\nMDXContent.isMDXComponent = true;","outboundReferences":[],"inboundReferences":[{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"I-XErtW7Z\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uD45C\\uC900 \\uC0C1 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/URL\",\n      \"title\": \"URL\",\n      \"className\": \" internal-link\"\n    }, \"URL\"), \" fragment\\uB294 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/HTTP\",\n      \"title\": \"HTTP\",\n      \"className\": \" internal-link\"\n    }, \"HTTP\"), \" \\uC694\\uCCAD\\uC5D0 \\uD3EC\\uD568\\uB418\\uBA74 \\uC548 \\uB418\\uBBC0\\uB85C, \\uC774\\uB97C \\uBC14\\uD0D5\\uC73C\\uB85C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://www.ctrl.blog/entry/recover-url-fragment-requests.html\"\n    }, \"\\uC798\\uBABB \\uC4F0\\uC778 \\uD074\\uB77C\\uC774\\uC5B8\\uD2B8\"), \"\\uB97C \\uAC78\\uB7EC\\uB0BC \\uC218 \\uC788\\uC74C\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"bf87d40c-269a-5759-bb04-ad28a80328e0","string":"표준 상 [[URL]] fragment는 [[HTTP]] 요청에 포함되면 안 되므로, 이를 바탕으로 [잘못 쓰인 클라이언트](https://www.ctrl.blog/entry/recover-url-fragment-requests.html)를 걸러낼 수 있음","fields":{"parentPage":{"title":"June 14th, 2022","fields":{"slug":"/June-14th-2022"}},"slug":"/I-XErtW7Z"}}}]},"fields":{"slug":"/URL"}}},"pageContext":{"id":"8c7ff899-0566-54d6-b3fb-2328ec66c938"}},"staticQueryHashes":["2131059104","2221750479","2468095761"]}