{
  "version": "https://jsonfeed.org/version/1", 
  "title": "Web Dev", 
  "description": "\u8ba8\u8bba W3C \u7684\u5404\u9879\u6807\u51c6\u7684\u7ec6\u8282\u548c\u5b9e\u73b0\u3002", 
  "home_page_url": "https://www.v2ex.com/go/webdev", 
  "feed_url": "https://www.v2ex.com/feed/webdev.json", 
  "icon": "https://cdn.v2ex.com/navatar/03e0/704b/1019_large.png?m=1579186067", 
  "favicon": "https://cdn.v2ex.com/navatar/03e0/704b/1019_normal.png?m=1579186067", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/victimsss", 
        "name": "victimsss", 
        "avatar": "https://cdn.v2ex.com/gravatar/c0e2a5a20f7f42283e9654867c485cbe?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1195686", 
      "date_modified": "2026-03-04T03:53:55+00:00", 
      "content_html": "\u540e\u53f0\u5f00\u53d1\uff0c\u6700\u8fd1\u5728\u7814\u7a76\u67d0\u4e2a\u670d\u52a1\u5728\u79fb\u52a8\u7aef\u5e94\u7528\u7684\u9002\u914d\u95ee\u9898\uff0c\u5c31\u505a\u4e86\u4e00\u4e2a\u7b80\u5355\u7684 demo \uff0c\u8fd9\u4e2a demo \u73b0\u5728\u5c31\u505a\u4e86\u4e00\u4e2a\u6700\u7b80\u5355\u7684\u64cd\u4f5c---\u52a0\u8f7d\u4e00\u4e2a\u767b\u5f55\u7684\u94fe\u63a5\uff0c\u8fd9\u4e2a\u94fe\u63a5\u96c6\u6210\u4e86\u8bb8\u591a\u4e09\u65b9\u767b\u5f55\u7684\u670d\u52a1\uff0c\u4f46\u662f\u9047\u5230\u4e00\u4e9b\u5947\u602a\u7684\u95ee\u9898\u3002<br /><br />1 \u3001\u5047\u5982\u5728\u5fae\u4fe1\u901a\u8fc7\u5bf9\u8bdd\u6846\u7684\u5f62\u5f0f\u6253\u5f00\u8fd9\u4e2a\u94fe\u63a5\uff0c\u9009\u62e9 qq \u767b\u5f55\uff0c\u53ef\u4ee5\u6b63\u5e38\u5524\u8d77 qq \u5e76\u4e14\u91cd\u5b9a\u5411\u56de\u5fae\u4fe1\u3002\u4f46\u662f\u5728 demo \u5524\u8d77 qq \u4e4b\u540e\uff0c\u767b\u5f55\u6210\u529f\u88ab\u91cd\u5b9a\u5411\u56de\u7cfb\u7edf\u6d4f\u89c8\u5668\u3002\u73b0\u5728\u662f\u4e0d\u662f\u610f\u5473\u7740\u8981\u505a\u4ec0\u4e48\u62e6\u622a\u64cd\u4f5c\uff0c\u5c06\u67d0\u91cd\u5b9a\u5411 URL \u6ce8\u518c\u5230\u8fd9\u4e2a demo \uff0c\u5f53 qq \u767b\u5f55\u6388\u6743\u6210\u529f\u7684\u65f6\u5019\uff0c\u56de\u8c03\u5230\u8fd9\u4e2a demo \uff08 deeplink \uff1f\u6216\u8005\u81ea\u5b9a\u4e49\u534f\u8bae\uff1f\uff09<br /><br />2 \u3001\u8fd9\u4e2a\u767b\u5f55\u94fe\u63a5\u539f\u672c\u662f\u6709\u4e00\u4e2a bug \u7684\uff0c \u4e09\u65b9\u767b\u5f55\u7684\u65f6\u5019\uff0c\u4e00\u4e9b code \u662f\u5b58\u5728 sessionstorage \u800c\u4e0d\u662f localstorage \uff0c\u5728\u7cfb\u7edf\u6d4f\u89c8\u5668\u9009\u62e9 qq \u767b\u5f55\u7684\u65f6\u5019\uff0c\u4f1a\u65b0\u5efa\u6807\u7b7e\u9875\u89e6\u53d1\u6570\u636e\u4e0d\u5171\u4eab\u5bfc\u81f4\u6388\u6743\u5931\u8d25\uff0c\u4f46\u662f\u5728\u5fae\u4fe1\u6d4f\u89c8\u5668\u53cd\u800c\u6b63\u5e38\uff0c\u96be\u9053\u662f\u56e0\u4e3a\u5fae\u4fe1\u81ea\u5e26\u7684\u6d4f\u89c8\u5668\u662f\u4e00\u4e2a\u4ec0\u4e48\u6570\u636e\u5171\u4eab\u7684\u5bb9\u5668\u6216\u8005\u4ec0\u4e48\u5355\u6807\u7b7e\u9875\u7279\u5236\u5e94\u7528\uff1f", 
      "date_published": "2026-03-04T03:29:42+00:00", 
      "title": "\u5173\u4e8e webview \u79fb\u52a8\u5e94\u7528\u5f00\u53d1\u7684\u4e00\u4e9b\u7591\u60d1\uff0c\u6c42\u89e3\u7b54", 
      "id": "https://www.v2ex.com/t/1195686"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/PepperEgg", 
        "name": "PepperEgg", 
        "avatar": "https://cdn.v2ex.com/avatar/61f8/c2eb/494158_large.png?m=1734580351"
      }, 
      "url": "https://www.v2ex.com/t/1185912", 
      "date_modified": "2026-01-15T07:42:19+00:00", 
      "content_html": "<p>\u5047\u5982 chrome \u8bbf\u95ee v2ex.com.\u9996\u6b21\u89e3\u6790\u51fa\u6765\u662f 1.1.1.1 \uff0c\u4e0d\u901a\uff0c\u6211\u4e0d\u65ad\u7684\u5237\u65b0\uff0c\u8fd8\u662f\u8bf7\u6c42\u7684\u8fd9\u4e2a ip \u3002\n\u4f7f\u7528 ipconfig /flushdns \uff0cwireshark \u4e00\u76f4\u6293\u5305\u76ef\u7740\uff0c\u5c31\u662f\u59cb\u7ec8\u8bf7\u6c42 1.1.1.1 \u3002\u6781\u5c11\u60c5\u51b5\u4e0b\uff0c\u6216\u8005\u8fc7\u4e86\u5f88\u4e45\uff0c\u4f1a\u518d\u6b21\u53d1\u8d77 dns \u8bf7\u6c42\u3002\n\u6709\u5565\u65b9\u6cd5\u53ef\u4ee5\u8ba9 chrome \u4e0d\u8fde\u8fd9\u4e2a ip \uff0c\u91cd\u65b0\u53d1\u8d77 dns \u8bf7\u6c42\uff1f</p>\n<p>\u5f53\u7136\u60c5\u51b5\u4e0d\u5c40\u9650\u4e8e chrome \u6d4f\u89c8\u5668\uff0c\u53ef\u4ee5\u662f\u4efb\u610f\u7a0b\u5e8f\u53d1\u8d77\u7684 http \u8bf7\u6c42\u3002</p>\n", 
      "date_published": "2026-01-15T07:09:36+00:00", 
      "title": "\u6d4f\u89c8\u5668\u8bbf\u95ee\u4e00\u4e2a\u57df\u540d\u4e0d\u901a\u7684\u60c5\u51b5\u4e0b\uff0c\u5982\u4f55\u8ba9\u8fd9\u4e2a\u57df\u540d\u518d\u6b21\u53d1\u8d77 dns \u8bf7\u6c42", 
      "id": "https://www.v2ex.com/t/1185912"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/biuyixia", 
        "name": "biuyixia", 
        "avatar": "https://cdn.v2ex.com/gravatar/5385b4a57e6144829c912c980e171e83?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1181050", 
      "date_modified": "2025-12-25T02:22:59+00:00", 
      "content_html": "<pre><code class=\"language-python\">`import requests\nimport urllib3\nurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)  # \u7981\u7528\u8b66\u544a\n\nproxies = {\n    'http': 'socks5://43.x.x.x:7002',\n    'https': 'socks5://43.x.x.x:7002'\n}\n\ntry:\n    response = requests.get('https://www.icloud.com',\n                           proxies=proxies,\n                           verify=False,  # \u7981\u7528 SSL \u9a8c\u8bc1\n                           timeout=10)\n    print(\"\u72b6\u6001\u7801:\", response.status_code)\n    print(\"\u54cd\u5e94\u5185\u5bb9:\", response.text)\nexcept Exception as e:\n    print(f\"\u8bf7\u6c42\u5931\u8d25: {e}\")`\n</code></pre>\n<p>\u4e0a\u9762\u4ee3\u7801\u83b7\u53d6\u7684\u7ed3\u679c\u662f\uff1a</p>\n<pre><code class=\"language-bash\">\u72b6\u6001\u7801: 200\n\u54cd\u5e94\u5185\u5bb9: REMOTE_ADDR = 43.x.x.x\nREMOTE_PORT = 62927\nREQUEST_METHOD = GET\nREQUEST_URI = /\nREQUEST_TIME_FLOAT = 1766626171.5559506\nREQUEST_TIME = 1766626171\nHTTP_HOST = www.icloud.com\nHTTP_USER-AGENT = python-requests/2.31.0\nHTTP_ACCEPT-ENCODING = gzip, deflate\nHTTP_ACCEPT = */*\nHTTP_CONNECTION = keep-alive\n</code></pre>\n<p>\u6709\u4e2a\u7591\u95ee\u7684\u70b9\uff0c\u4e3a\u4ec0\u4e48\u83b7\u53d6\u7684\u4e0d\u662f\u7f51\u9875\u5185\u5bb9\uff0c\u53bb\u6389\u4ee3\u7406\u83b7\u53d6\u7684\u5c31\u662f\u6b63\u5e38\u7f51\u9875\u5185\u5bb9\uff0c\u8fd9\u79cd\u4ee3\u7406\u662f\u4e0d\u662f\u4e0d\u80fd\u7528\uff1f\n\u627e\u4e86\u597d\u591a socks5 \u7684\u90fd\u662f\u8fd9\u79cd\uff0c\u5f88\u7591\u60d1\u3002</p>\n", 
      "date_published": "2025-12-25T01:37:38+00:00", 
      "title": "\u7528 socks5 \u4ee3\u7406\u65e0\u6cd5\u8fd4\u56de\u6b63\u5e38\u7f51\u9875\u5185\u5bb9", 
      "id": "https://www.v2ex.com/t/1181050"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lisisi", 
        "name": "lisisi", 
        "avatar": "https://cdn.v2ex.com/avatar/235b/4426/245623_large.png?m=1730104552"
      }, 
      "url": "https://www.v2ex.com/t/1170493", 
      "title": "Datastar \u672a\u6765\u6709\u673a\u4f1a\u4ee3\u66ff React \u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1170493", 
      "date_published": "2025-11-04T10:14:46+00:00", 
      "content_html": "<p>\u4ece Datastar \u5b98\u65b9\u4ecb\u7ecd\uff1a</p>\n<p>Datastar accepts text/html and text/event-stream content types, so you can send regular HTML responses or stream server-sent events (SSE) from the backend.</p>\n<p>\u8fd9\u4e2a\u6846\u67b6\u7406\u5ff5\u786e\u5b9e\u4e0d\u4e00\u822c\uff0c\u65e2\u53ef\u4ee5\u7b80\u5355\u7684\u5f53 Jquery \u7528\uff0c\u53c8\u80fd\u50cf React \u4e00\u6837\u505a SPA \u3002\u76ee\u524d\u751f\u6001\u80af\u5b9a\u4e0d\u5982 React/Vue \u8fd9\u4e9b\uff0c\u4ece\u672a\u6765\u53d1\u5c55\u7684\u8d8b\u52bf\u770b\uff0c\u4ee5\u540e\u6709\u673a\u4f1a\u4ee3\u66ff React \u5417\uff0c\u6216\u8005\u80fd\u8fbe\u5230 React/Vue \u4e09\u8db3\u9f0e\u7acb\u7684\u4f4d\u7f6e\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/EthZhang", 
        "name": "EthZhang", 
        "avatar": "https://cdn.v2ex.com/avatar/970d/38be/672098_large.png?m=1758097958"
      }, 
      "url": "https://www.v2ex.com/t/1159984", 
      "title": "nb \u4e86\uff0c chrome mobile \u6587\u4ef6\u4e0a\u4f20\u8fd8\u5b58\u5728\u95ee\u9898\u554a\uff0c\u4e0d\u80fd\u540c\u65f6\u5141\u8bb8\u591a\u79cd accept \uff0c\u9875\u9762\u4f1a\u89e6\u53d1\u5237\u65b0", 
      "id": "https://www.v2ex.com/t/1159984", 
      "date_published": "2025-09-17T08:35:28+00:00", 
      "content_html": "<p>\u8fd9\u4e2a\u95ee\u9898\u82b1\u4e86\u6211\u4e00\u5929\u3002\u3002\u3002\u3002</p>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://images.cnblogs.com/cnblogs_com/blogs/686520/galleries/2059474/o_250917083443_Xnip2025-09-17_16-34-34.jpg\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sheyue", 
        "name": "sheyue", 
        "avatar": "https://cdn.v2ex.com/gravatar/a248fcfe27c5be28651db8066731dc7e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1157832", 
      "title": "\u8bf7\u6559\u4e0b\u5927\u4f6c\u4eec\u6709\u65e0\u79fb\u52a8\u7aef app \u4e0a h5 \u9875\u9762\u4f11\u7720/\u5185\u5b58\u4f18\u5316\u601d\u8def", 
      "id": "https://www.v2ex.com/t/1157832", 
      "date_published": "2025-09-08T09:18:42+00:00", 
      "content_html": "<p>\u80cc\u666f\uff1a\u4e1a\u52a1\u4e0a\u7684 app \u4e0a\u6709\u7528 webView \u52a0\u8f7d\u591a\u4e2a h5 \u9875\u9762\uff08\u5c0f\u6e38\u620f\u3001\u6d3b\u52a8\uff09\uff0c\u5206 tab \u5bf9\u5e94\u5c55\u793a\uff08\u7c7b\u4f3c\u6d4f\u89c8\u5668\uff09\uff0c\u6bcf\u6b21\u53ea\u4f1a\u6fc0\u6d3b\u4e00\u4e2a\u9875\u9762\uff0c\u73b0\u5728\u51e0\u4e2a\u9875\u9762\u540c\u65f6\u52a0\u8f7d\u7684\u60c5\u51b5\u4e0b\uff0c\u51e0\u4e2a\u9875\u9762\u56e0\u4e3a\u76f8\u5bf9\u590d\u6742\uff0c\u5185\u5b58\u5360\u7528\u90fd\u5f88\u9ad8\uff0c\u5bfc\u81f4 app \u5185\u5b58\u98d9\u5f88\u9ad8</p>\n<p>\u9884\u671f\u662f\u6ca1\u6709\u6fc0\u6d3b\u7684 tab \u80fd\u591f\u51cf\u5c11\u5185\u5b58\u5360\u7528\uff08\u4ece\u4f11\u7720\u3001\u5185\u5b58\u63a7\u5236\u7b49\u65b9\u5411\uff09\uff0c\u60f3\u95ee\u4e0b v \u7ad9\u7684\u5927\u4f6c\u4eec\u6709\u4ec0\u4e48\u4f18\u5316\u601d\u8def</p>\n<p>ps\uff1a\u4ee5\u524d\u5904\u7406\u8fc7 electron \u4e0a\u52a0\u8f7d\u591a\u4e2a browserView \u7684\u9875\u9762\u7684\u4f18\u5316\uff0c\u5f53\u65f6\u7528\u7684\u662f\u8c03\u7528\u5176\u4ed6\u7ec4\u7ed9\u7684 dll \u5305\uff0c\u8bbe\u7f6e\u672a\u6fc0\u6d3b\u9875\u9762\u8fdb\u7a0b\u5185\u5b58\u7f6e\u6362\u90e8\u5206\u5230\u7269\u7406\u5185\u5b58\u3002\u4f46\u662f\u5904\u7406\u79fb\u52a8\u7aef\u9875\u9762\u6ca1\u5565\u601d\u8def</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/simpleman", 
        "name": "simpleman", 
        "avatar": "https://cdn.v2ex.com/avatar/fe26/7779/282664_large.png?m=1734574412"
      }, 
      "url": "https://www.v2ex.com/t/1153981", 
      "date_modified": "2025-08-21T14:45:22+00:00", 
      "content_html": "<p>op \u73b0\u5728\u4e1a\u52a1\u60f3\u4e0a http3 \uff0c\u6d4b\u8bd5\u4e0b\u6765\u53d1\u73b0\u8fd8\u4e0d\u5982 http1.1 \u3002op \u7684\u573a\u666f\u65f6\u89c6\u9891\u70b9\u64ad\uff0c\u70b9\u64ad\u65f6\u53bb\u62c9\u53bb\u4e00\u6761\u97f3\u9891\u6d41\u548c\u89c6\u9891\u6d41\u3002\u4f7f\u7528\u7684 http3 \u5e93\u662f cronet \u548c NSURLSession \u3002\u76ee\u524d\u5f97\u77e5\uff1a</p>\n<ol>\n<li>\u7f51\u4e0a\u8bf4\u56fd\u5185\u7684\u7f51\u7edc\u73af\u5883\u5bf9 udp \u4e0d\u592a\u53cb\u597d</li>\n<li>\u56fd\u5185\u5927\u5382\u5df2\u7ecf\u7528\u4e0a\u4e86 quic</li>\n</ol>\n<p>\u60f3\u95ee\u95ee V \u53cb\u4eec\u6709\u6ca1\u4ec0\u4e48\u5efa\u8bae\uff1f</p>\n", 
      "date_published": "2025-08-21T07:16:58+00:00", 
      "title": "\u60f3\u95ee\u95ee\u73b0\u5728\u5927\u5bb6\u5de5\u4f5c/\u4e1a\u52a1\u4e0a\u90fd\u7528\u4e0a http3 \u4e86\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1153981"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gelatomao", 
        "name": "gelatomao", 
        "avatar": "https://cdn.v2ex.com/gravatar/401e0972e3c3f914e75efe44e3ae1dd6?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1137265", 
      "date_modified": "2025-06-10T00:50:37+00:00", 
      "content_html": "<p>\u5728\u6392\u67e5\u4e00\u4e2a\u7ebf\u4e0a\u95ee\u9898\uff0c\u60f3\u770b\u4e0b\u4e00\u4e2a post \u8bf7\u6c42\u7684\u8bf7\u6c42\u4f53\u6570\u636e\uff0c\u4f46\u662f\u4e0d\u60f3\u5c06\u8fd9\u4e2a\u8bf7\u6c42\u6210\u529f\u53d1\u9001\u51fa\u53bb\u3002\u5982\u4f55\u622a\u65ad\u8fd9\u4e2a\u8bf7\u6c42\u5462\uff0c\u662f\u4e0d\u662f\u9700\u8981 charles \u4e4b\u7c7b\u7684\u5de5\u5177</p>\n", 
      "date_published": "2025-06-09T00:56:23+00:00", 
      "title": "\u5982\u4f55\u622a\u65ad http \u8bf7\u6c42", 
      "id": "https://www.v2ex.com/t/1137265"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jiaoguan1688", 
        "name": "jiaoguan1688", 
        "avatar": "https://cdn.v2ex.com/avatar/e043/056c/456168_large.png?m=1745522707"
      }, 
      "url": "https://www.v2ex.com/t/1132322", 
      "date_modified": "2025-05-18T01:38:09+00:00", 
      "content_html": "\u6211\u53d1\u73b0\u6211\u53ea\u8981\u662f\u5f00\u7740\u9875\u9762\uff0c\u6709\u4eba\u56de\u590d\u5c31\u4f1a\u6709\u663e\u793a!<br />\u597d\u50cf\u6211\u5173\u4e86\u9875\u9762\uff0c\u53ea\u8981\u662f\u8f93\u5165\u7f51\u5740\u8fd8\u6ca1\u56de\u8f66 \u4e5f\u4f1a\u770b\u5230\u6709\u65b0\u56de\u590d<br />\u8fd9\u662f\u5982\u4f55\u5b9e\u73b0\u7684\uff1f\u597d\u50cf\u6ca1\u770b\u5230\u63a5\u53e3\u8bf7\u6c42\u4e4b\u7c7b\u7684\u5fc3\u8df3\u5305", 
      "date_published": "2025-05-16T13:41:48+00:00", 
      "title": "v2 \u7684\u65b0\u56de\u590d\u5c55\u793a \u662f\u5982\u4f55\u63a8\u9001\u7684\uff1f", 
      "id": "https://www.v2ex.com/t/1132322"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ztjal", 
        "name": "ztjal", 
        "avatar": "https://cdn.v2ex.com/gravatar/8c9d0ba22693441f5f868eb96ee1bb94?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1128755", 
      "date_modified": "2025-04-30T00:55:50+00:00", 
      "content_html": "\u5185\u7f51 nginx \u505a\u53cd\u4ee3\uff0c\u81ea\u7b7e CA \u548c\u57df\u540d\u8bc1\u4e66\uff0c\u5728 win \u4e0a\u88c5\u81ea\u7b7e CA \u6ca1\u95ee\u9898\uff0c\u4f46\u624b\u673a\u6ca1\u529e\u6cd5\u88c5\uff0c\u5b8c\u5168\u89e3\u51b3\u4e0d\u4e86\u3002<br /><br />\u73b0\u5728\u60f3\u7684\u5c31\u662f\u7528\u4e00\u4e2a http/socks \u4ee3\u7406\uff0c\u5c06\u6d41\u91cf\u8f6c\u6210 http \u534f\u8bae\uff0c\u6765\u8bbf\u95ee nginx \u3002<br /><br />\u6240\u4ee5\u6709\u6ca1\u6709\u8fd9\u79cd\u4e1c\u897f\u5462\uff1f", 
      "date_published": "2025-04-28T16:30:01+00:00", 
      "title": "\u6709\u6ca1\u4e00\u79cd\u53ef\u4ee5\u5c06 http/socks \u4ee3\u7406\u8f6c http \u534f\u8bae\u7684\u4e1c\u897f\uff1f", 
      "id": "https://www.v2ex.com/t/1128755"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/z1gui", 
        "name": "z1gui", 
        "avatar": "https://cdn.v2ex.com/avatar/bf26/2062/654409_large.png?m=1770165222"
      }, 
      "url": "https://www.v2ex.com/t/1124781", 
      "date_modified": "2025-04-11T13:27:59+00:00", 
      "content_html": "\u8bbf\u95ee\u7cfb\u7edf\u7528\u7684 https \uff0c\u5728\u7cfb\u7edf\u67d0\u4e2a\u9875\u9762\u9700\u8981\u52a0\u8f7d\u4e00\u4e2a\u5176\u4ed6\u670d\u52a1\u5546\u63d0\u4f9b\u7684 <a target=\"_blank\" href=\"http://xxx.xxx/demo.js\" rel=\"nofollow noopener\">http://xxx.xxx/demo.js</a> \u3002\u6211\u60f3\u5230\u7684\u65b9\u6cd5\u662f\u901a\u8fc7 nginx \u628a http \u670d\u52a1\u8f6c\u6362\u6210\u5185\u670d\u670d\u52a1\u5668\u4e0a https \u670d\u52a1\uff0c\u7136\u540e\u7136\u540e\u9875\u9762\u52a0\u8f7d\u5185\u90e8\u670d\u52a1\u5668\u7684 https \u3002\u73b0\u5728\u6709\u4e2a\u95ee\u9898\uff0c\u56e0\u4e3a\u662f\u81ea\u7b7e\u8bc1\u4e66\uff0c\u6bcf\u6b21\u9875\u9762\u52a0\u8f7d\u65f6\u5019\u5c31\u663e\u793a\u4e0d\u5b89\u5168\u8fde\u63a5\uff0c\u9700\u8981\u70b9\u51fb\u4e00\u4e0b\u624d\u80fd\u6b63\u5e38\u52a0\u8f7d\u3002\u6211\u4e0d\u592a\u61c2\u8bc1\u4e66\u8ba4\u8bc1\u8fd9\u65b9\u9762\u95ee\u9898\uff0c\u8bf7\u95ee\u5927\u4f6c\u6709\u4ec0\u4e48\u65b9\u5f0f\u4e0d\u5f39\u51fa\u4e0d\u5b89\u5168\u8fde\u63a5\u7684\u63d0\u793a\uff0c\u76f4\u63a5\u52a0\u8f7d\u9875\u9762\u5462\uff1f", 
      "date_published": "2025-04-11T07:54:57+00:00", 
      "title": "\u5173\u4e8e Https \u8bc1\u4e66\u9a8c\u8bc1\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1124781"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/stimw", 
        "name": "stimw", 
        "avatar": "https://cdn.v2ex.com/avatar/4759/0b53/479724_large.png?m=1724047127"
      }, 
      "url": "https://www.v2ex.com/t/1123748", 
      "date_modified": "2025-04-07T10:17:04+00:00", 
      "content_html": "<p>\u60f3\u81ea\u5df1\u5199\u4e00\u4e2a html \u7684\u9759\u6001\u7535\u5b50\u8bf7\u67ec\uff0c\u5fae\u4fe1\u4e0a\u53d1\u7ed9\u522b\u4eba\u3002\u5185\u5bb9\u6bd4\u8f83\u957f\uff0c\u6d89\u53ca\u4e00\u4e9b\u6d41\u7a0b\u548c\u6ce8\u610f\u4e8b\u9879\u4e4b\u7c7b\u7684\uff08\u53ef\u4ee5\u4e0d\u770b\uff0c\u4f46\u5f97\u6709\ud83e\udee0\uff09\uff0c\u53ea\u662f\u53d1\u56fe\u7247\u7684\u8bdd\u4e0d\u592a\u65b9\u4fbf\u3002\u81f3\u4e8e\u57df\u540d\u94fe\u63a5\u5565\u7684\u65e0\u6240\u8c13\u3002</p>\n<p>\u56fd\u5185\u6709\u7b26\u5408\u9700\u6c42\u7684\u6258\u7ba1\u670d\u52a1\u5417\uff1f</p>\n<p>\u624b\u4e0a\u7684\u57df\u540d\u6ca1\u6709\u4e00\u4e2a\u5907\u6848\u7684\uff0c\u4e5f\u4e0d\u592a\u60f3\u4e3a\u4e86\u4e2a\u4e00\u6b21\u6027\u7684\u8bf7\u67ec\u6298\u817e...</p>\n<p>\u5b9e\u5728\u4e0d\u884c\u6211\u5c31\u53d1\u56fe\u7247\u4e86...</p>\n", 
      "date_published": "2025-04-07T07:26:39+00:00", 
      "title": "\u60f3\u627e\u9759\u6001\u7f51\u9875\u6258\u7ba1\u670d\u52a1\uff0c\u65e0\u9700\u57df\u540d", 
      "id": "https://www.v2ex.com/t/1123748"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jerrywaffle", 
        "name": "jerrywaffle", 
        "avatar": "https://cdn.v2ex.com/gravatar/4d4b0229e6a34d0fbeb35c99468920ad?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1123381", 
      "date_modified": "2025-04-05T04:27:44+00:00", 
      "content_html": "[\u9700\u6c42]<br />\u7ecf\u5e38\u6d4f\u89c8\u4e0d\u540c\u7f51\u7ad9\u7684\u7f51\u9875\uff0c\u4f46\u662f\u53ea\u9700\u8981\u5176\u4e2d\u4e00\u5c0f\u90e8\u5206\u5185\u5bb9\u3002\u5982\u4f55\u628a\u4e0d\u540c\u7f51\u7ad9 A \u3001B \u3001C \u3001D \u7684\u5404\u81ea\u4e0d\u540c\u90e8\u5206\u62fc\u51d1\u5230\u4e00\u8d77\u5230\u6211\u4e2a\u4eba\u7684\u9875\u9762\uff0c\u63d0\u9ad8\u6d4f\u89c8\u6548\u7387\u3002\u6700\u597d\u80fd\u4fdd\u6301\u539f\u6709\u5185\u5bb9\u7684\u4ea4\u4e92\uff0c\u6bd4\u5982\u70b9\u51fb\u4ec0\u4e48\u7684\u3002<br /><br />[\u56f0\u96be]<br />iframe cors \u90fd\u4f1a\u6709\u9650\u5236\u7684\uff0c\u6211\u53ea\u662f\u81ea\u5df1\u7528\uff0c\u4e0d\u7528\u62c5\u5fc3\u6cd5\u5f8b\u95ee\u9898\u3002<br /><br />[\u65b9\u6848]<br />1/ python \u722c\u866b\uff0c\u672c\u5730 render \uff0c\u7136\u540e\u63d0\u53d6\u5185\u5bb9\uff0c\u53ef\u4ee5\u4fdd\u5b58\u4e3a\u56fe\u7247\uff0c\u4f46\u662f\u6700\u597d\u662f\u6587\u5b57\u7684\uff0c\u4fdd\u7559 style \u3002\u7136\u540e\u62fc\u51d1\u5230\u81ea\u5df1\u7f51\u9875<br /><br />2/ \u7528 qt webview \u4ec0\u4e48\u7684\uff0c\u4f46\u662f\u6211\u60f3\u8981\u4e00\u4e2a\u7f51\u9875\u7248\u7684\uff0c\u4e0d\u8981\u672c\u5730 app<br /><br />3/ \u597d\u50cf\u6709 caddy reverse proxy \u7ed5\u8fc7 iframe cors \u9650\u5236<br /><br />\u4e07\u80fd\u7684 v2exer \u8bf7\u7ed9\u51fa\u4f60\u5b9d\u8d35\u7684\u53ef\u884c\u5efa\u8bae\uff0c\u8c22\u8c22\uff01", 
      "date_published": "2025-04-05T04:27:11+00:00", 
      "title": "\u5982\u4f55\u62fc\u51d1\u4e0d\u540c\u7f51\u9875\u7684\u4e0d\u540c\u90e8\u5206\u5230\u4e00\u4e2a\u7f51\u9875", 
      "id": "https://www.v2ex.com/t/1123381"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/nizhong044", 
        "name": "nizhong044", 
        "avatar": "https://cdn.v2ex.com/avatar/c315/2505/690805_large.png?m=1747409815"
      }, 
      "url": "https://www.v2ex.com/t/1123067", 
      "date_modified": "2025-04-03T04:27:35+00:00", 
      "content_html": "\u6ca1\u6709\u7f51\u9875\u5f00\u53d1\u7ecf\u9a8c\uff0c\u4ee5\u4e3a\u5f88\u7b80\u5355\u3002\u73b0\u5728\u9a6c\u4e0a\u8981\u4ea4\u4e86\uff0c\u8fd8\u5269 10 \u591a\u5929\u3002\u641c\u4e86\u4e0b\u53d1\u73b0\u6839\u672c\u4e0d\u662f\u60f3\u8c61\u4e2d\u90a3\u4e48\u7b80\u5355\uff0c\u5373\u4f7f\u53ea\u662f\u505a\u4e00\u4e2a\u9879\u76ee\u7ba1\u7406\u7684\u7b80\u5355\u7f51\u9875\u7a0b\u5e8f\uff0c\u8981\u5b66\u7684\u4e1c\u897f\u4e5f\u592a\u591a\u4e86\u3002\u3002\u3002<br /><br /><br /><br />\u6709\u6ca1\u6709\u9002\u5408\u65b0\u624b\u7684\uff0c\u641e\u8d77\u6765\u7279\u522b\u7b80\u5355\u7684\u7f51\u9875\u7a0b\u5e8f\u5f00\u53d1\u65b9\u6cd5\uff1f", 
      "date_published": "2025-04-03T03:18:07+00:00", 
      "title": "\u7279\u522b\u5feb\u901f\u5f00\u53d1\u7f51\u9875\u7a0b\u5e8f\u7684\u65b9\u6cd5\uff1f", 
      "id": "https://www.v2ex.com/t/1123067"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/louzhumuyou", 
        "name": "louzhumuyou", 
        "avatar": "https://cdn.v2ex.com/avatar/a550/1d50/160937_large.png?m=1495497682"
      }, 
      "url": "https://www.v2ex.com/t/1119919", 
      "title": "shopify \u600e\u4e48\u5207\u6362 identity provider", 
      "id": "https://www.v2ex.com/t/1119919", 
      "date_published": "2025-03-20T09:06:50+00:00", 
      "content_html": "<p>\u60f3\u627e\u5bfb\u4e86\u89e3\u719f\u6089 shopify \u7684\u540c\u5b66\uff0c\u6211\u4eec\u9047\u5230\u4e00\u4e2a\u95ee\u9898\uff0c\u53ef\u4ee5\u4ed8\u8d39\u8bf7\u6559\uff1b</p>\n<p>\u6211\u4eec\u73b0\u5728 shopify \u7684\u7f51\u7ad9\u662f\u5916\u5305\u7ed9\u5916\u90e8\u5e2e\u5fd9\u5efa\u7ad9\u7684\uff0c\u7136\u540e\u4f7f\u7528\u7684\u662f\u539f\u751f\u7684\u767b\u5f55\u6ce8\u518c\u7684\u7cfb\u7edf\uff0c\u73b0\u5728\u60f3\u5207\u6362 identity provider \uff0c\u53d1\u73b0\u5149\u5207\u5230\u81ea\u5b9a\u4e49\u7684 identity provider \u4ee5\u540e\u4e0d\u80fd\u6b63\u5e38\u6ce8\u518c\u548c\u767b\u5f55\u4e86\u3002</p>\n<p>\u770b\u8d77\u6765\u8fd8\u662f\u6307\u5411\u539f\u751f\u7684 shopify \u6ce8\u518c\u767b\u5f55\u754c\u9762\uff0c\u5916\u90e8\u540c\u5b66\u4e5f\u6682\u65f6\u8054\u7cfb\u4e0d\u4e0a\uff0c\u90a3\u4e48\u73b0\u5728\u6211\u4eec\u5e94\u8be5\u600e\u4e48\u529e\u5462\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/iisboy", 
        "name": "iisboy", 
        "avatar": "https://cdn.v2ex.com/gravatar/c5749eba216f96e62082928462be18e4?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1116838", 
      "title": "\u8fd8\u6709\u4eba\u5728\u4f7f\u7528 ASP \u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1116838", 
      "date_published": "2025-03-08T03:47:21+00:00", 
      "content_html": "<p>\u7ecf\u5178 ASP \uff0c\u521b\u5efa\u4e86\u4e00\u4e2a\u7fa4 \u6b22\u8fce\u52a0\u5165\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zpzpzp", 
        "name": "zpzpzp", 
        "avatar": "https://cdn.v2ex.com/avatar/c736/702f/511075_large.png?m=1775616611"
      }, 
      "url": "https://www.v2ex.com/t/1115511", 
      "date_modified": "2025-03-04T04:59:22+00:00", 
      "content_html": "\u7f51\u4e0a\u770b\u4e86\u5f88\u591a\u90fd\u662f\u8bf4\u672c\u5730 https://localhost \u9875\u9762\u624d\u80fd\u8bbf\u95ee", 
      "date_published": "2025-03-03T07:29:56+00:00", 
      "title": "\u770b\u5230\u4e00\u4e2a\u9879\u76ee\uff0c H5 \u9875\u9762\u4f7f\u7528 ip \u90e8\u7f72\uff0c\u786e\u5b9a\u6ca1\u6709 ssl\uff0c\u4e3a\u5565\u4ece\u5fae\u4fe1\u6253\u5f00\u8fd8\u662f\u80fd\u8c03\u7528\u6444\u50cf\u5934\uff1f", 
      "id": "https://www.v2ex.com/t/1115511"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ISOtropy", 
        "name": "ISOtropy", 
        "avatar": "https://cdn.v2ex.com/avatar/84ed/38db/660475_large.png?m=1738835387"
      }, 
      "url": "https://www.v2ex.com/t/1114955", 
      "title": "\u6c42\u63a8\u8350\u5f00\u6e90\u7684\u5de5\u4e1a\u9886\u57df\u7535\u5546\u9879\u76ee", 
      "id": "https://www.v2ex.com/t/1114955", 
      "date_published": "2025-02-28T10:11:34+00:00", 
      "content_html": "\u516c\u53f8\u8ba1\u5212\u57fa\u4e8e\u73b0\u6709\u7684\u7535\u5546\u5f00\u6e90\u9879\u76ee\u5f00\u53d1\u4e00\u5957\u5de5\u4e1a\u4ea7\u54c1\u7535\u5546\u5e73\u53f0\uff0c\u4e3b\u8981\u4e1a\u52a1\u677f\u5757\u5305\u62ec\uff1a<br /><br />    \u7535\u5b50\u5382\u5e38\u7528\u8017\u6750<br />    \u4eea\u5668\u4eea\u8868\u9500\u552e\u53ca\u7ef4\u4fee<br /><br />\u5e73\u53f0\u9700\u540c\u65f6\u652f\u6301 PC \u7aef\u548c\u79fb\u52a8\u7aef\u3002<br />\u76ee\u524d\u5e02\u573a\u4e0a\u7684\u4e00\u4e9b\u5f00\u6e90\u7535\u5546\u9879\u76ee\uff0c\u5927\u591a\u4ec5\u63d0\u4f9b\u57fa\u7840\u7248\u672c\uff0c\u800c\u9ad8\u7ea7\u529f\u80fd\u5219\u9700\u8981\u4ed8\u8d39\u3002\u57fa\u7840\u7248\u529f\u80fd\u663e\u7136\u65e0\u6cd5\u6ee1\u8db3\u6211\u4eec\u7684\u9700\u6c42\uff0c\u56e0\u6b64\u6c42 v \u53cb\u63a8\u8350\u4e00\u4e2a\u652f\u6301 PC \u4e0e\u79fb\u52a8\u7aef\uff0c\u5e76\u4e14\u529f\u80fd\u76f8\u5bf9\u5b8c\u6574\u7684\u5f00\u6e90\u9879\u76ee\uff0c\u4ee5\u4fbf\u8fdb\u884c\u4e8c\u6b21\u5f00\u53d1\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/FelixBoom", 
        "name": "FelixBoom", 
        "avatar": "https://cdn.v2ex.com/gravatar/d83a455bbc0a7962ddf52efd37bf290e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1114408", 
      "date_modified": "2025-02-26T09:20:16+00:00", 
      "content_html": "<p>\u5bfb\u4e00\u4e2a\u8010\u5fc3\u7684\u4eba\uff0c\u53ef\u4ee5\u52a0\u5fae\u4fe1\u804a,\u56e0\u4e3a\u6211\u771f\u7684\u65e0\u57fa\u7840\uff0c\u611f\u6069...\n\u5fae\u4fe1\u662f myfelix177</p>\n<p>\u76ee\u524d\u5361\u5728\u8fd9\u4e00\u6b65\uff08\u76f4\u63a5 ds \u4e0a\u590d\u5236\u9ecf\u8d34\u4e86\uff09\uff1a</p>\n<p>\u4e8c\u3001\u8fde\u63a5\u670d\u52a1\u5668</p>\n<ol>\n<li>\u901a\u8fc7 SSH \u767b\u5f55\nbash</li>\n</ol>\n<h1>\u672c\u5730\u7ec8\u7aef\u6267\u884c\uff08\u66ff\u6362 YOUR_IP \u4e3a ECS \u516c\u7f51 IP \uff09</h1>\n<p>ssh -i ~/.ssh/\u4f60\u7684\u5bc6\u94a5.pem ubuntu@YOUR_IP\n\u5bc6\u94a5\u6587\u4ef6\u9700\u63d0\u524d\u5728\u963f\u91cc\u4e91\u63a7\u5236\u53f0\u7ed1\u5b9a\u5230\u5b9e\u4f8b</p>\n<ol>\n<li>\u9996\u6b21\u767b\u5f55\u540e\u64cd\u4f5c\nbash</li>\n</ol>\n<h1>\u66f4\u65b0\u7cfb\u7edf</h1>\n<p>sudo apt update &amp;&amp; sudo apt upgrade -y</p>\n<h1>\u5b89\u88c5\u57fa\u7840\u5de5\u5177</h1>\n<p>sudo apt install -y git python3-pip python3-venv nginx</p>\n", 
      "date_published": "2025-02-26T09:16:34+00:00", 
      "title": "\u7eaf\u7f16\u7a0b\u5c0f\u767d\uff0c\u7528 ds \u505a\u4e86\u4e2a\u7f51\u7ad9\u78b0\u5230\u963f\u91cc\u4e91\u90e8\u7f72\u95ee\u9898\uff0c\u5bfb\u6c42\u8010\u5fc3\u6307\u5bfc", 
      "id": "https://www.v2ex.com/t/1114408"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/go522000", 
        "name": "go522000", 
        "avatar": "https://cdn.v2ex.com/avatar/2b80/e87f/355074_large.png?m=1733801867"
      }, 
      "url": "https://www.v2ex.com/t/1114319", 
      "date_modified": "2025-02-26T04:03:09+00:00", 
      "content_html": "<p>\u6709\u4e00\u4e2a\u65b0\u9879\u76ee\uff0cuniapp \u5f00\u53d1\u7684\uff0c\u7f16\u8bd1\u6210 APP \uff0c\u60f3\u5728\u91cc\u9762\u589e\u52a0\u4e00\u4e9b\u7edf\u8ba1\uff0c\u4ee5\u4fbf\u540e\u671f\u4e86\u89e3\u7528\u6237\u66f4\u559c\u6b22\u54ea\u4e9b\u6a21\u5757\u4e0e\u505c\u7559\u65f6\u95f4\u7b49\u3002</p>\n<p>\u67e5\u4e86\u4e00\u4e0b\uff0c\u5e02\u9762\u4e0a\u6709\u767e\u5ea6\u7edf\u8ba1\u3001\u53cb\u76df\u3001Growing IO \u3001Adjust \u7b49\u5f88\u591a\u3002</p>\n<p>\u8bf7\u95ee\u6709\u54ea\u4f4d\u4f7f\u5f97\u8fc7\u7684\uff0c\u77e5\u9053\u54ea\u4e00\u4e2a\u6bd4\u8f83\u65b9\u4fbf\u5462\uff1f</p>\n<p>\u975e\u5e38\u611f\u8c22\u63a8\u8350</p>\n", 
      "date_published": "2025-02-26T04:01:28+00:00", 
      "title": "\u8bf7\u95ee\u4e00\u4e0b\uff0c\u5404\u4f4d\u662f\u4f7f\u7528\u54ea\u4e9b\u7edf\u8ba1\u5e73\u53f0\u5462\uff1f\u4f7f\u7528 uniapp \u5f00\u53d1\u7684 APP\uff0c\u76f8\u5bf9\u7528\u6237\u8fdb\u884c\u8bb0\u5f55\u4e0e\u7edf\u8ba1\u3002", 
      "id": "https://www.v2ex.com/t/1114319"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/cjlalalala", 
        "name": "cjlalalala", 
        "avatar": "https://cdn.v2ex.com/gravatar/350d0702aad208b7ebf017e9994e9a55?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1113200", 
      "date_modified": "2025-02-21T05:43:24+00:00", 
      "content_html": "\u6211\u4eec\u7684\u573a\u666f\u662f\u540e\u7aef\u7ed9\u524d\u7aef\u66b4\u9732\u53d1\u5e03\u5e16\u5b50\u7684 api \uff0c\u754c\u9762\u4e0a\u662f\u6709\u660e\u786e\u7684\u6807\u9898\u8ddf\u5185\u5bb9\u7684 UI \u533a\u5206\u7684\u3002<br /><br />\u516c\u53f8\u91cc\u7684\u5b9e\u4e60\u751f\u5728\u7ed9\u524d\u7aef\u66b4\u9732 api \u7684\u65f6\u5019\uff0c\u7ed9\u524d\u7aef\u66b4\u9732\u4e86\u4e0b\u8ff0\u7684 api\uff1a<br />const response: AxiosResponse&lt;FeedFlow.PublishPostResponse&gt; = await <a target=\"_blank\" href=\"http://this.apiClient.post\" rel=\"nofollow noopener\">this.apiClient.post</a>('/feed-flow/publish-post', {<br />  authorId: request.authorId,<br />  content: `${request.title}\\n${request.content}`,<br />});<br /><br />\u540e\u7aef\u540c\u5b66\u7684\u5b58\u50a8\u683c\u5f0f\u662f\u628a title \u8ddf content \u6b63\u6587\u5b58\u50a8\u5728\u4e00\u4e2a\u4e00\u6bb5\u91cc\u9762\uff0c\u6309\u884c\u5206\u5272\u3002\u524d\u7aef\u540c\u5b66\u89c9\u5f97\u8981\u5728 api \u7684\u5c42\u9762\u4e0a\u628a title \u8ddf content \u901a\u8fc7\u5b57\u7b26\u62fc\u63a5\u518d\u8d4b\u503c\u7ed9 content \u5b57\u6bb5\u5f88\u4e0d\u81ea\u7136\u3002\u540e\u7aef\u540c\u5b66\u89c9\u5f97\u6ca1\u4ec0\u4e48\u6240\u8c13\uff0c\u89c9\u5f97\u6570\u636e\u5e93\u91cc\u9762\u5b9a\u7684\u5c31\u662f\u8fd9\u4e2a\u5b57\u6bb5\uff0c\u76f4\u63a5\u7ed9\u4ed6\u62fc\u597d\u5c31\u884c\u4e86\u3002<br /><br />\u6211\u7684\u770b\u6cd5\u662f\uff0capi \u7684\u63d0\u4f9b\u9700\u8981\u662f\u4ece\u4ee3\u7801\u5c42\u9762\u4e0a\u5c31\u6709\u6e05\u6670\u8bed\u4e49\u7684\uff0c\u8fd9\u79cd\u5b57\u6bb5\u7684\u8bf4\u660e\u6bd4\u8f83\u96be\u4ee5\u8ba9\u4eba\u7406\u89e3\u3002<br /><br />\u60f3\u95ee\u95ee\u5927\u4f6c\u4eec\u600e\u4e48\u770b\u5f85\u8fd9\u4e2a\u95ee\u9898\uff0c\u6709\u4ec0\u4e48\u7406\u636e\u80fd\u591f\u652f\u6491\u5404\u81ea\u7684\u89c2\u70b9\uff1f", 
      "date_published": "2025-02-21T04:58:08+00:00", 
      "title": "API \u8bf7\u6c42\u4f53\u5b57\u6bb5\u5b9a\u4e49\u8be2\u95ee\u5404\u4f4d\u5927\u4f6c\u3002", 
      "id": "https://www.v2ex.com/t/1113200"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/qee", 
        "name": "qee", 
        "avatar": "https://cdn.v2ex.com/gravatar/20305481846549acbcf36ce58b124035?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1112522", 
      "date_modified": "2025-02-19T06:15:57+00:00", 
      "content_html": "\u6700\u8fd1\u7528\u6237\u670d\u52a1\u5668\u78b0\u5230 ajax \u8bf7\u6c42\uff0c\u62a5 net::ERR_CONNECTION_ABORTED<br /><br />1.\u9875\u9762\u505c\u7559\u4e00\u4f1a\uff08\u7ea6 1-2 \u5206\u949f\uff09\uff0c\u518d\u70b9\u51fb\u8bf7\u6c42\uff0c\u53d1\u751f ajax \u7684\u8bf7\u6c42 ERR_CONNECTION_ABORTED \uff0c\u9875\u9762\u63d0\u793a\u201c\u7f51\u9875\u53ef\u80fd\u6682\u65f6\u65e0\u6cd5\u8fde\u63a5\uff0c\u6216\u8005\u5b83\u5df2\u6c38\u4e45\u6027\u5730\u79fb\u52a8\u5230\u4e86\u65b0\u7f51\u5740\u3002\u201d\uff0c\u5237\u65b0\u540e\u53c8\u6b63\u5e38\u4e86\uff0c\u6982\u7387\u4e0d\u5b9a\u3002<br /><br />2.\u6709\u4e00\u4e2a\u8bf7\u6c42\u6bd4\u8f83\u660e\u663e\u3002<br /><br />3.\u670d\u52a1\u5668\u7528\u7684\u662f tomcat \uff0clocal_access \u65e5\u5fd7\u6ca1\u6709\u5bf9\u5e94\u7684 url \u8bf7\u6c42\u65e5\u5fd7\uff0ccatalina.out \u6ca1\u9519\u62a5\u9519\u65e5\u5fd7\uff0c\u6ca1\u6709\u5176\u4ed6\u53cd\u5411\u4ee3\u7406\u3002<br /><br />4.\u7528\u6237\u670d\u52a1\u5668\u7528\u7684 windows server \u3002<br /><br />5.\u7f51\u7edc\u73af\u5883\u60c5\u51b5:\u901a\u8fc7 easyconnect \u7684 VPN \uff0c\u76f4\u63a5\u8bbf\u95ee\u670d\u52a1\u5668\u7684 IP \u8bbf\u95ee\u7cfb\u7edf\u3002<br /><br />6.\u6d4f\u89c8\u5668\u6362\u4e86\uff0c\u8bd5\u4e86 chrome \u548c 360 \u6781\u901f\uff0c\u95ee\u9898\u60c5\u51b5\u4e00\u6837\u3002<br /><br />7.\u60f3\u901a\u8fc7 Wireshark \u6293\u5305\u770b\u770b\uff0c\u5751\u7239\u7684\u662f\u8bfb\u4e0d\u5230 easyconnect \u7684\u865a\u62df\u7f51\u5361\u3002<br /><br />\u73b0\u5728\u4e0d\u77e5\u9053\u600e\u4e48\u6392\u9664\u4e86\uff0c\u6709\u54ea\u4f4d\u8001\u54e5\u6709\u601d\u8def\uff0c\u5728\u7ebf\u7b49", 
      "date_published": "2025-02-19T02:04:05+00:00", 
      "title": "\u7f51\u7edc\u8bf7\u6c42 ERR_CONNECTION_ABORTED\uff0c\u95ee\u9898\u6c42\u52a9", 
      "id": "https://www.v2ex.com/t/1112522"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/pureGirl", 
        "name": "pureGirl", 
        "avatar": "https://cdn.v2ex.com/avatar/68a4/5fd8/600355_large.png?m=1740359860"
      }, 
      "url": "https://www.v2ex.com/t/1111802", 
      "date_modified": "2025-02-16T14:27:20+00:00", 
      "content_html": "\u6dd8\u5b9d\u8fd9\u79cd\u7b97\u5417", 
      "date_published": "2025-02-16T10:19:25+00:00", 
      "title": "\u4ec0\u4e48\u6837\u7684\u7f51\u7ad9\u7b97\u8bbe\u8ba1\u7cbe\u826f\u7684", 
      "id": "https://www.v2ex.com/t/1111802"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/felix9ia", 
        "name": "felix9ia", 
        "avatar": "https://cdn.v2ex.com/avatar/dca3/c7e4/320538_large.png?m=1738321646"
      }, 
      "url": "https://www.v2ex.com/t/1106781", 
      "date_modified": "2025-01-21T06:51:40+00:00", 
      "content_html": "<p>\u60f3\u8bf7\u6559\u4e00\u4e0b\u5927\u5bb6\u662f\u600e\u4e48\u505a\u7684\uff1f</p>\n<p>\u6bd4\u5982\u8bbf\u95ee\u4e00\u4e2a\u7535\u5546\u7f51\u7ad9\u7684\u5e97\u94fa\u9875\u9762\u7684 url\uff1a</p>\n<p>\u65b9\u5f0f 1\uff1a\u4f7f\u7528\u81ea\u589e\u7684\u4e3b\u952e id\nxxx/shop/123</p>\n<p>\u65b9\u5f0f 2\uff1a\u4f7f\u7528\u96ea\u82b1\u4e3b\u952e id \u6216\u8005 guid</p>\n<p>xxx/shop/1881238297653633026</p>\n<p>xxx/shop/85d93ea0-3d43-48c5-99ec-e11f54655228</p>\n<p>\u65b9\u5f0f 3\uff1a \u4f7f\u7528\u4e1a\u52a1\u7f16\u53f7</p>\n<p>xxx/shop/st_003</p>\n<p>\u65b9\u5f0f 4\uff1a</p>\n<p>\u7528 sqids \u628a\u6240\u6709\u7684\u5b9e\u4f53\u4e3b\u952e id(private_id) \u5728\u8f6c\u6362 VO \u65f6\u52a0\u76d0\u8f6c\u6362\u6210 (public_id) \u8fd4\u56de\u7ed9\u524d\u7aef</p>\n<p>\u76f8\u5173\u8ba8\u8bba\uff1a\n<a href=\"https://www.reddit.com/r/csharp/comments/rg7xob/is_it_bad_to_expose_primary_key_to_the_user_if/\" rel=\"nofollow\">https://www.reddit.com/r/csharp/comments/rg7xob/is_it_bad_to_expose_primary_key_to_the_user_if/</a></p>\n", 
      "date_published": "2025-01-21T06:25:37+00:00", 
      "title": "\u5e94\u4e0d\u5e94\u8be5\u628a\u4e3b\u952e id \u66b4\u9732\u5728 url \u4e0a\uff1f", 
      "id": "https://www.v2ex.com/t/1106781"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chunkingName", 
        "name": "chunkingName", 
        "avatar": "https://cdn.v2ex.com/gravatar/56c648f6f9f3adbb9bdb7e3c0b41fd03?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1088525", 
      "date_modified": "2024-11-11T12:30:52+00:00", 
      "content_html": "<p>VUE \u9879\u76ee\uff0c\u5728\u6211\u7684\u7406\u89e3\u91cc\uff0c\u90e8\u7f72\u5230\u670d\u52a1\u5668\u4e0a\u540e\uff0c\u4f60\u968f\u4fbf\u4e00\u53f0\u7535\u8111 A \u8bbf\u95ee\u8fd9\u4e2a\u9875\u9762\uff0c\u8fd9\u4e2a\u9875\u9762\u8c03\u7528\u7684\u63a5\u53e3\uff08\u4f8b\u5982\u83b7\u53d6\u7528\u6237\u4fe1\u606f\uff09\u662f\u4ece A \u7535\u8111\u53d1\u8d77\u7684\uff0c\u4e5f\u5c31\u662f\u8bf4\uff08\u83b7\u53d6\u7528\u6237\u4fe1\u606f\u8fd9\u4e2a\u63a5\u53e3\uff09\u5fc5\u987b\u662f\u4e00\u4e2a\u516c\u7f51\u53ef\u4ee5\u8bbf\u95ee\u7684\u63a5\u53e3\u3002\n\u73b0\u5728\u7531\u4e8e\u4e00\u4e9b\u5b89\u5168\u7684\u8003\u8651\uff0c\u6709\u4e9b\u63a5\u53e3\u540e\u7aef\u9700\u8981\u53ea\u80fd\u5185\u7f51\u8bbf\u95ee\u3002\n\u8fd9\u79cd\u5e94\u8be5\u600e\u4e48\u5904\u7406\uff1f</p>\n", 
      "date_published": "2024-11-11T06:24:51+00:00", 
      "title": "\u524d\u7aef\u9879\u76ee\u90e8\u7f72\u5230\u670d\u52a1\u5668\uff0c\u600e\u4e48\u8c03\u901a\u8bbf\u95ee\u670d\u52a1\u5668\u4e0a\u7684\u5185\u7f51 IP \u63a5\u53e3", 
      "id": "https://www.v2ex.com/t/1088525"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lizy0329", 
        "name": "lizy0329", 
        "avatar": "https://cdn.v2ex.com/avatar/0d69/a5b9/376727_large.png?m=1767081004"
      }, 
      "url": "https://www.v2ex.com/t/1086774", 
      "date_modified": "2024-11-05T12:45:55+00:00", 
      "content_html": "<p>\u6211\u662f\u7528 vite \u5f00\u53d1 -&gt; http://localhost:5173</p>\n<p>\u4f7f\u7528 whistle \u6765\u6620\u5c04\u9879\u76ee\u57df\u540d\u8fdb\u884c\u5f00\u53d1(\u9700\u8981\u767b\u5f55\uff0c\u79cd cookies):\nlocalhost:5173 <a href=\"http://example.com/dev\" rel=\"nofollow\">example.com/dev</a></p>\n<p>\u8fd8\u6709\u90a3\u79cd\u66f4\u52a0\u4fbf\u6377\u7684\u672c\u5730\u5f00\u53d1\u65b9\u5f0f\uff1f</p>\n", 
      "date_published": "2024-11-05T04:48:11+00:00", 
      "title": "\u672c\u5730\u5f00\u53d1\u7528\u4ec0\u4e48\u57df\u540d\uff1f", 
      "id": "https://www.v2ex.com/t/1086774"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xjhou00007", 
        "name": "xjhou00007", 
        "avatar": "https://cdn.v2ex.com/gravatar/1f36bf7cbb879ccbe3addd4e94c3c537?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1085197", 
      "date_modified": "2024-10-31T04:27:08+00:00", 
      "content_html": "<p>\u5404\u4f4d\u5927\u4f6c\uff0c\u8bf7\u6559\u4e00\u4e0b\uff0c\u51c6\u5907\u5728 3568 \u677f\u5b50\u4e0a\u5f00\u53d1\u90e8\u7f72\u4e00\u5957 web \u670d\u52a1\uff0c\u524d\u7aef\u7528 nginx+h5(\u524d\u7aef\u4e0d\u662f\u6211\u5199)\uff0c\u540e\u7aef\u5f00\u53d1 web \u670d\u52a1\u63d0\u4f9b\u63a5\u53e3\uff0cc++,go,rust \u9009\u54ea\u4e2a\u5f00\u53d1\u6bd4\u8f83\u597d\u3002</p>\n<p>\u76ee\u524d\u677f\u5b50\u4e0a\u6709\u4e00\u5957\u5728\u8dd1\u7684\u540e\u53f0\u5e94\u7528\u7a0b\u5e8f\u662f\u7528 c++\u5199\u7684\uff0c\u73b0\u5728\u8981\u52a0 web \u670d\u52a1\u529f\u80fd\uff0c\u4e0d\u60f3\u52a0\u5230\u539f\u6765\u7684\u5e94\u7528\u7a0b\u5e8f\u91cc\u9762\uff0c\u5e76\u4e14\u4e5f\u60f3\u5c1d\u8bd5\u5b66\u4e60\u4e00\u4e0b\u5176\u4ed6\u7684\u8bed\u8a00\uff0c\u770b\u4e86\u4e00\u4e0b go \u548c rust \u7684\u7b80\u5355\u4ecb\u7ecd\uff0c\u611f\u89c9\u4e0a\u624b\u5e94\u8be5\u4e0d\u96be\uff0c\u4f46\u662f\u60f3\u4e86\u89e3\u4e00\u4e0b\u4e0a\u624b\u54ea\u4e2a\u66f4\u5408\u9002\u3002\u5982\u679c\u6709\u80fd\u591f\u65b9\u4fbf\u5f00\u53d1 http server \u548c http client \u7684\u6210\u719f\u7684\u6846\u67b6\u548c\u5e93\u6700\u597d\u4e86\u3002</p>\n<p>\u8fd9\u5957\u7a0b\u5e8f\u4e5f\u5c31\u6211\u4e00\u4e2a\u4eba\u5f00\u53d1\u7ef4\u62a4\uff0c\u4e0d\u9700\u8981\u8003\u8651\u56e2\u961f\u534f\u4f5c\u3002\u3002\u3002</p>\n", 
      "date_published": "2024-10-31T02:18:49+00:00", 
      "title": "c++ go rust \u8c01\u66f4\u9002\u5408\u5f00\u53d1 \u5d4c\u5165\u5f0f Linux \u4e0a\u7684 web \u540e\u53f0\u670d\u52a1", 
      "id": "https://www.v2ex.com/t/1085197"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/LILILILILIWY", 
        "name": "LILILILILIWY", 
        "avatar": "https://cdn.v2ex.com/gravatar/e0334921851d8d6989771b756dfd2478?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1084543", 
      "date_modified": "2024-10-29T11:16:45+00:00", 
      "content_html": "<p>\u6709\u4e00\u4e2a xml \u5b9e\u4f8b\u6587\u4ef6, \u73b0\u9700\u8981\u5c06 mysql \u4e2d\u7684\u6bcf\u4e00\u6761\u6570\u636e\u586b\u5145\u5230 xml \u6587\u4ef6\u4e2d,\u7136\u540e\u663e\u793a\u5728\u7f51\u9875\u4e0a</p>\n<p>\u662f\u540e\u7aef\u901a\u8fc7 jinja2 \u5199\u597d\u4e00\u4e2a\u63a5\u53e3, \u7136\u540e\u518d\u7f51\u9875\u4e0a\u8bf7\u6c42\u8fd9\u4e2a\u63a5\u53e3\u5730\u5740\u76f4\u63a5 get \u51fa\u6765\u6574\u4e2a xml \u5462?(\u6211\u611f\u89c9 jinja2 \u6709\u70b9\u9e21\u808b,\u4e0d\u592a\u5408\u9002 \u5f53\u7136\u6709\u53ef\u80fd\u662f\u6211\u592a\u83dc)</p>\n<p>\u8fd8\u662f\u6211\u628a mysql \u91cc\u7684\u6570\u636e\u8fd4\u56de\u7ed9\u524d\u7aef, \u8ba9\u524d\u7aef\u6765\u505a\u4e00\u4e2a xml \u663e\u793a\u5230\u7f51\u9875\u4e0a\u5462?\n\u6c42\u77e5,\u5927\u4f6c\u4eec</p>\n", 
      "date_published": "2024-10-29T03:08:00+00:00", 
      "title": "\u6c42\u77e5 \u5927\u4f6c\u4eec \u4e00\u5b9a\u5e2e\u6211\u89e3\u7b54\u4e0b \u611f\u8c22 Fastapi \u6846\u67b6\u4e2d\u7684\u6a21\u677f\u5f15\u64ce jinja2 \u662f\u5426\u5df2\u8fc7\u65f6,\u6216\u8005\u8bf4\u662f\u5426\u8fd8\u5efa\u8bae\u4f7f\u7528", 
      "id": "https://www.v2ex.com/t/1084543"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/yuntian55", 
        "name": "yuntian55", 
        "avatar": "https://cdn.v2ex.com/avatar/b33d/4718/266663_large.png?m=1736101279"
      }, 
      "url": "https://www.v2ex.com/t/1083353", 
      "title": "\u63a8\u8350\u4e00\u4e2a web \u5f00\u53d1\u5c0f\u5de5\u5177\uff0c\u68c0\u6d4b\u9875\u9762\u662f\u5426\u53ef\u4ee5 iframe, \u7f51\u5740 https://iframetester.dev/", 
      "id": "https://www.v2ex.com/t/1083353", 
      "date_published": "2024-10-24T11:55:25+00:00", 
      "content_html": "\u63a8\u8350\u4e00\u4e2a web \u5f00\u53d1\u5c0f\u5de5\u5177\uff0c\u68c0\u6d4b\u9875\u9762\u662f\u5426\u53ef\u4ee5 iframe \u3002<a target=\"_blank\" href=\"https://iframetester.dev/\" rel=\"nofollow noopener\">https://iframetester.dev/</a><br /><br />github \u5f00\u6e90\u5730\u5740 <a target=\"_blank\" href=\"https://github.com/SmileyEmily/iframetester\" rel=\"nofollow noopener\">https://github.com/SmileyEmily/iframetester</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zhwguest", 
        "name": "zhwguest", 
        "avatar": "https://cdn.v2ex.com/avatar/b633/f688/433522_large.png?m=1685067457"
      }, 
      "url": "https://www.v2ex.com/t/1081013", 
      "title": "failed to load response data: no resource with given identifier found", 
      "id": "https://www.v2ex.com/t/1081013", 
      "date_published": "2024-10-17T00:14:47+00:00", 
      "content_html": "<p>\u5927\u5bb6\u78b0\u5230\u8fc7\u8fd9\u4e2a\u95ee\u9898\u4e48\uff0cchrome \u6d4f\u89c8\u5668\u3002nginx \u68c0\u67e5\u6ca1\u6709\u95ee\u9898\u3002\u5c31\u662f\u5076\u73b0\uff0c\u51fa\u73b0\u540e dev tool \u4e2d\u663e\u793a\uff1a</p>\n<p>failed to load response data: no resource with given identifier found</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/BlackSnow", 
        "name": "BlackSnow", 
        "avatar": "https://cdn.v2ex.com/avatar/077f/9542/682408_large.png?m=1724034304"
      }, 
      "url": "https://www.v2ex.com/t/1075961", 
      "title": "\u8bf7\u6559\u8c37\u6b4c\u6d4f\u89c8\u5668\u81ea\u52a8\u586b\u5145", 
      "id": "https://www.v2ex.com/t/1075961", 
      "date_published": "2024-09-26T04:38:22+00:00", 
      "content_html": "<p>\u8bf7\u95ee\u4e00\u4e0b\u56fe\u4e2d\u8fd9\u79cd\u60c5\u51b5<a href=\"https://i.imgur.com/9qvCDaO.png\" rel=\"nofollow\">\u81ea\u52a8\u586b\u5145\u8868\u683c</a>\n\u662f\u7f51\u9875\u901a\u8fc7\u6211\u7684 cookie \u63d0\u53d6\u7684\u8d44\u6599\u5417\uff0c\u8fd8\u662f\u6d4f\u89c8\u5668\u7684\u63a8\u8350\u5efa\u8bae\u3002</p>\n<p>\u9047\u5230\u8fc7\u8fd9\u79cd\u60c5\u51b5\u4e86\uff0c\u4e0d\u77e5\u9053\u8fd9\u79cd\u573a\u666f\u6587\u672c\u6570\u636e\u5c5e\u4e8e\u4ec0\u4e48\u7c7b\u522b\u3002\n\u76ee\u524d\u5c1d\u8bd5\u67e5\u770b\u8c37\u6b4c\u8bbe\u7f6e\u4e2d\u7684\u81ea\u52a8\u586b\u5145\uff0c\u6ca1\u770b\u5230\u8fd9\u4e9b\u6587\u672c\u3002</p>\n<p>\u5e0c\u671b\u89e3\u51b3</p>\n<ol>\n<li>\u80fd\u5426\u67e5\u770b\u8fd9\u4e9b\u5177\u4f53\u7684\u6587\u672c</li>\n<li>\u80fd\u5426\u9009\u62e9\u90e8\u5206\u5220\u9664</li>\n</ol>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/atfeel", 
        "name": "atfeel", 
        "avatar": "https://cdn.v2ex.com/gravatar/05e880c3ebdb8f94dcc25fa1ead531c4?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1060426", 
      "date_modified": "2024-07-27T07:57:06+00:00", 
      "content_html": "<p>\u6700\u8fd1\u81ea\u5df1\u505a\u4e86\u4e2a\u4e2a\u4eba\u9879\u76ee\uff0c\u8d44\u91d1\u6709\u9650\uff0c\u60f3\u542f\u7528 https \uff0c\u53ea\u662f\u53d1\u73b0\u73b0\u5728\u7684\u8bc1\u4e66\u90fd\u662f\u6536\u8d39\u7684\uff0c\u96be\u9053\u5927\u5bb6\u90fd\u662f\u7528\u6536\u8d39\u7684\u5417\uff1f\u6709\u6ca1\u6709\u9002\u5408\u4e2a\u4eba\u7684\u514d\u8d39 https \u8bc1\u4e66\u5462\uff0c\u5f53\u7136\u4e5f\u6709\u8bf4\u514d\u8d39\u7eed\u7b7e\u8bc1\u4e66\u7684\uff0c\u5927\u5bb6\u80fd\u5206\u4eab\u4e0b\u5417\uff1f</p>\n", 
      "date_published": "2024-07-26T13:41:25+00:00", 
      "title": "\u5404\u4f4d\u90fd\u5728\u7528\u4ec0\u4e48 web \u8bc1\u4e66\u65b9\u6848\u5462", 
      "id": "https://www.v2ex.com/t/1060426"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/handm", 
        "name": "handm", 
        "avatar": "https://cdn.v2ex.com/gravatar/7574e8159d41db884ae9dc7779016816?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1056341", 
      "date_modified": "2024-07-10T12:20:54+00:00", 
      "content_html": "\u80cc\u666f\uff1a\u6700\u8fd1\u63a5\u624b\u4e86\u516c\u53f8\u7684\u4e00\u4e2a\u9879\u76ee\uff0c\u7528 delphi \u5199\u7684\uff0c\u901a\u8fc7 http \u8bbf\u95ee\u516c\u53f8\u7684\u4e91\u670d\u52a1\u3002<br />1.\u5076\u5c14\u6709\u7528\u6237\u53cd\u9988\u6709\u95ee\u9898\uff0c\u6392\u67e5\u540e\u53d1\u73b0\u662f\u8bbf\u95ee\u516c\u53f8\u7684\u4e91\u670d\u52a1\u5931\u8d25\u4e86\uff08\u62a5\u9519\uff1a\u4e0e\u670d\u52a1\u5668\u7684\u8fde\u63a5\u610f\u5916\u7ec8\u6b62\uff09\uff0c\u4f46\u662f\u53ef\u4ee5 ping \u901a\uff0c\u6000\u7591\u662f delphi \u4e2d http \u7ec4\u4ef6\u7684\u95ee\u9898<br />2.\u4e8e\u662f\u7528 C#\u5199\u4e86\u4e00\u4e2a\u6d4b\u8bd5\u7a0b\u5e8f\uff0c\u901a\u8fc7 http \u8bbf\u95ee\u76f8\u540c\u7684\u4e91\u670d\u52a1\uff0c\u4e5f\u5931\u8d25\u4e86\uff08\u62a5\u9519\uff1aThe underlying connection was closed: An unexpected error occurred on a receive.\uff09<br />3.\u5728\u6709\u95ee\u9898\u7684\u7535\u8111\u4e0a\u8bbf\u95ee\u5176\u4ed6\u57df\u540d\u90fd\u6b63\u5e38\uff0c\u8bbf\u95ee\u516c\u53f8\u7684\u57df\u540d\u90fd\u4e0d\u6b63\u5e38\uff0c\u4e0d\u77e5\u9053\u548c\u4ec0\u4e48\u4e1c\u897f\u6709\u5173<br />\u6709\u6ca1\u6709\u5927\u4f6c\u5e2e\u5fd9\u5206\u6790\u4e00\u4e0b", 
      "date_published": "2024-07-10T10:05:17+00:00", 
      "title": "\u6c42\u52a9\uff1a\u901a\u8fc7 http \u8bbf\u95ee\u67d0\u57df\u540d\u5931\u8d25", 
      "id": "https://www.v2ex.com/t/1056341"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hongye", 
        "name": "hongye", 
        "avatar": "https://cdn.v2ex.com/avatar/0c72/b8e3/147949_large.png?m=1664070662"
      }, 
      "url": "https://www.v2ex.com/t/1052499", 
      "date_modified": "2024-06-25T09:21:34+00:00", 
      "content_html": "<p>\u5728\u5f00\u53d1 web \u7a0b\u5e8f\u7684\u8fc7\u7a0b\u4e2d\u9700\u8981\u5bf9\u63a5\u4e00\u4e9b\u7b2c\u4e09\u65b9\u7684\u670d\u52a1\uff0c\u5728\u672c\u5730\u73af\u5883\u4e2d\u53ef\u4ee5\u901a\u8fc7 postman \u4e4b\u7c7b\u7684\u5de5\u5177\u6765\u505a\u63a5\u53e3\u7684\u5bf9\u63a5\u8c03\u8bd5\u3002\u4f46\u662f\u7531\u4e8e\u7f51\u7edc\u9694\u79bb\u7684\u9650\u5236\uff0c\u67d0\u4e9b\u670d\u52a1\u53ea\u80fd\u5728\u7279\u5b9a\u7f51\u7edc\u73af\u5883\u4e0b\u8bbf\u95ee\u8fd9\u4e9b\u670d\u52a1\uff0c\u5bf9\u4e8e\u8fd9\u79cd\u60c5\u51b5\uff0c\u6709\u4ec0\u4e48\u6bd4\u8f83\u597d\u7684\u8c03\u8bd5\u65b9\u5f0f\u5417\uff1f</p>\n", 
      "date_published": "2024-06-25T08:34:53+00:00", 
      "title": "\u670d\u52a1\u5668\u7aef http \u63a5\u53e3\u8c03\u8bd5\u5de5\u5177", 
      "id": "https://www.v2ex.com/t/1052499"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/HariopaNic", 
        "name": "HariopaNic", 
        "avatar": "https://cdn.v2ex.com/gravatar/27124666f8d64e40c31eb9d2046ec908?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1050930", 
      "date_modified": "2024-06-19T10:45:28+00:00", 
      "content_html": "<p>\u573a\u666f\uff1a\u4e24\u4e2a\u9875\u9762\uff0c\u5728\u9875\u9762 1 \u8fdb\u884c\u641c\u7d22\u914d\u7f6e\u540e\u8df3\u8f6c\u9875\u9762 2 \u83b7\u53d6\u5e76\u4e14\u5c55\u793a\u641c\u7d22\u7ed3\u679c\uff1b</p>\n<p>\u75db\u70b9\u662f\uff1a\u9875\u9762 1 \u914d\u7f6e\u51fa\u6765\u7684\u53c2\u6570\u6bd4\u8f83\u590d\u6742\uff0c\u4e0d\u9002\u5408\u653e\u8fdb url \u4e2d\uff1b</p>\n<p>\u5e0c\u671b\u5237\u65b0\uff0c\u6216\u8005\u91cd\u65b0\u6253\u5f00\u9875\u9762 2 \u4f9d\u65e7\u53ef\u4ee5\u4f20\u9012\u6b63\u786e\u7684\u53c2\u6570\u7ed9\u540e\u7aef\u83b7\u53d6\u7ed3\u679c\uff1b</p>\n<p>\u9664\u4e86\u5c06\u8be5\u6570\u636e\u653e\u8fdb\u6d4f\u89c8\u5668\u7f13\u5b58\u4e2d\uff0c\u8fd8\u6709\u522b\u7684\u65b9\u6cd5\u4e48\uff1f</p>\n", 
      "date_published": "2024-06-19T09:44:55+00:00", 
      "title": "\u8bf7\u6559\u4e00\u4e0b\u641c\u7d22\u548c\u641c\u7d22\u7ed3\u679c\u9875\u9762\u5206\u79bb\u5982\u4f55\u53c2\u6570\u4f20\u9012\uff1f", 
      "id": "https://www.v2ex.com/t/1050930"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wyfig", 
        "name": "wyfig", 
        "avatar": "https://cdn.v2ex.com/gravatar/95d5e1a7b136cd566c2495f0982d6fb3?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1050839", 
      "date_modified": "2024-06-20T02:16:23+00:00", 
      "content_html": "<p>\u6700\u8fd1\u5f00\u53d1\u4e00\u4e2a flutter \u7684\u9879\u76ee\uff0c\u4e00\u5f00\u59cb\u5e76\u6ca1\u6709\u8003\u8651 web \u7aef\u9002\u914d\uff0c\u90fd\u662f\u6309\u7167 iOS \u548c\u5b89\u5353\u6765\u8fdb\u884c\u5f00\u53d1\u548c\u9002\u914d\u7684\u3002\u540e\u9762\u8bf4\u8981\u4e0a\u4e00\u4e2a web \u7248\u672c\uff0c\u5c31\u4e00\u4e2a\u4e2a\u4e09\u65b9\u5e93\u53bb\u67e5\u770b\u5904\u7406\u4e0b\uff0c\u53d1\u73b0\u5176\u5b9e 90%\u7684\u4e09\u65b9\u5e93\u90fd\u662f\u652f\u6301 web \u7aef\u7684\uff0c\u53ea\u6709\u4e2a\u522b\u7684\u8fdb\u884c\u4e86\u66ff\u6362\u6216\u8005 web \u7aef\u7528\u4e0d\u5230\u7684\u3002 \u5dee\u4e0d\u591a\u4e00\u5929\u5de6\u53f3\u5c31\u9002\u914d\u5b8c\u6210\u4e86\u3002</p>\n<p>\u8fd0\u884c\u8d77\u6765\u517c\u5bb9\u6027\u8ddf app \u7aef\u663e\u793a\u548c\u4f7f\u7528\u4e5f\u90fd\u5dee\u4e0d\u591a\u3002 \u4e4b\u524d\u81ea\u5df1\u5e76\u4e0d\u4f1a vue \u8fd9\u4e9b\uff0c\u4f46\u662f\u77ac\u95f4\u611f\u89c9\u81ea\u5df1\u4f1a web \u7684\u5f00\u53d1\u4e86\uff0c\u54c8\u54c8\uff0c\u591a\u4e86\u4e00\u9879\u6280\u80fd\u3002\u8fd9\u6b21\u6574\u4f53\u4f53\u9a8c\u4e0b\u6765\uff0c\u611f\u89c9 flutter web \u8fd8\u662f\u53ef\u4ee5\u7684\uff0c\u4e0d\u77e5\u9053\u4e3a\u5565\u7f51\u4e0a\u90a3\u4e48\u591a\u5dee\u8bc4\u3002\u540e\u9762\u5982\u679c\u6709\u666e\u901a\u7684 web \u9879\u76ee\uff0c\u611f\u89c9\u53ef\u4ee5\u8003\u8651\u4e0b flutter web \uff0c\u5bf9\u4e8e\u4f1a flutter \u5f00\u53d1\u5ba2\u6237\u7aef\u7684\u670b\u53cb\u6765\u8bf4\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u4e0b\u3002</p>\n", 
      "date_published": "2024-06-19T05:36:24+00:00", 
      "title": "flutter \u5f00\u53d1 web \u4f3c\u4e4e\u95ee\u9898\u4e5f\u4e0d\u5927", 
      "id": "https://www.v2ex.com/t/1050839"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wen20", 
        "name": "wen20", 
        "avatar": "https://cdn.v2ex.com/avatar/4878/9dd6/687887_large.png?m=1774671242"
      }, 
      "url": "https://www.v2ex.com/t/1049279", 
      "date_modified": "2024-06-14T02:33:53+00:00", 
      "content_html": "<h1>\u539f\u751f dialog \u8bf4\u660e</h1>\n<p>\u7f51\u7ad9\u6700\u8fd1\u4e0a\u4e86\u4e00\u6279\u7528\u6237\uff0c \u4e3a\u4f18\u5316\u7528\u6237\u4f53\u9a8c\uff0c\u51b3\u5b9a\u7528 AJAX + modal \u7a97\u53e3\u4f18\u5316\u4ea4\u4e92\u3002\n\u627e\u5230 JQuery modal \u63d2\u4ef6\u53d1\u73b0\u5df2\u653e\u5f03\u7ef4\u62a4\uff0c\u5efa\u8bae\u4f7f\u7528 dialog \uff0c \u624d\u77e5 html \u6709\u4e86\u539f\u751f dialog \uff0c\u5b66\u4e60\u5427\u3002</p>\n<h2>\u9879\u76ee</h2>\n<p>\u65e9\u77e5 121 \uff0c \u8f7b\u677e\u521b\u5efa\u4e2a\u4eba\u5bfc\u822a\u7ad9\u3002\n\u7f51\u7ad9\u5730\u5740 \uff1a <a href=\"https://www.zz121.com\" rel=\"nofollow\">https://www.zz121.com</a> </p>\n<h3>dialog \u4f7f\u7528\u573a\u666f</h3>\n<p>\u79fb\u52a8 url \u5206\u7ec4\u65f6\uff0c\u5f39\u51fa\u7a97\u53e3\uff0c \u9009\u62e9\u5206\u7ec4\uff0c \u201c\u786e\u5b9a\u201d \u4fdd\u5b58\u5185\u5bb9\uff0c\u5173\u95ed\u5f39\u51fa\u7a97\u53e3\u3002<br/>\n\u70b9\u51fb \u201c\u53d6\u6d88\u201d  \u5173\u95ed\u5f39\u51fa\u7a97\u53e3\u3002  </p>\n<h2>\u4f7f\u7528 dialog \u6548\u679c\u5c55\u793a</h2>\n<p><img alt=\"dialog demo\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://toimg.xyz/file/e3d45d69e7c88a5051eb5.jpg\"/></p>\n<p><img alt=\"dialog demo\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://toimg.xyz/file/f17a865ba752b32adee63.png\"/></p>\n<h2>\u4ee3\u7801\u5b9e\u73b0</h2>\n<p>dialog \u6807\u7b7e\u5185\u5305\u542b html \u4ee3\u7801\ndialog \u53ef\u4ee5\u50cf  \u5176\u4ed6 html \u6807\u7b7e \u4e00\u6837\uff0c\u8bbe\u7f6e ID \u5c5e\u6027  </p>\n<p>\u6ce8\u610f form method=\"dialog\" , \"\u786e\u5b9a\" \u548c \"\u53d6\u6d88\" \u89e6\u53d1\u5173\u95ed\u5f39\u51fa\u7a97 \u3002 </p>\n<pre><code class=\"language-html\">&lt;dialog id=\"moveDialog\"&gt;\n    &lt;form method=\"dialog\" style=\"margin: 10px;\"&gt;\n        &lt;div&gt;\n            &lt;label&gt;\n                \u79fb\u52a8-\u9009\u62e9\u5206\u7ec4&lt;br/&gt;\n                &lt;select name=\"class_id\" id=\"class_id\" style=\"margin: 10px;\"&gt;\n                    &lt;option value=\"0\"&gt;\u8bf7\u9009\u62e9\u5206\u7ec4&lt;/option&gt;\n                    {{range .ClassApiSrv.OptionsByUId .UserId}}\n                    &lt;option value=\"{{.Id}}\"&gt; {{.Title}}&lt;/option&gt;\n                    {{end}}\n                &lt;/select&gt;\n            &lt;/label&gt;\n        &lt;/div&gt;\n        &lt;div style=\"display: flex; flex-direction: row-reverse;\"&gt;\n            &lt;button onclick=\"moveSave()\" class=\"btn btn-info\"&gt;\u786e\u5b9a&lt;/button&gt; &amp;nbsp;\n            &lt;button class=\"btn btn-gray\" &gt;\u53d6\u6d88&lt;/button&gt;\n        &lt;/div&gt;\n\n    &lt;/form&gt;\n&lt;/dialog&gt;\n\n</code></pre>\n<pre><code class=\"language-js\">\n// \u53ea\u5c55\u793a\u5173\u952e\u4ee3\u7801\n\n// dialog \u663e\u793a\nconst favDialog = document.getElementById(\"moveDialog\");\nfavDialog.showModal()\n\n// \u83b7\u53d6 dialog \u5185\u8868\u5355\u6570\u636e\uff0c \u548c\u5176\u4ed6 element \u4e00\u6837\u7684\u83b7\u53d6\u65b9\u5f0f\nlet class_id = $(\"#class_id\").val()\n\n</code></pre>\n<p>\u6700\u7b80\u5355\u7684\u7528\u6cd5\uff0c\u5c31\u6ee1\u8db3\u6211\u7684\u9700\u6c42\uff0c \u6b64\u5916\u8fd8\u53ef\u4ee5\u8bbe\u7f6e\u80cc\u666f\u8272\uff0c\u80cc\u666f\u56fe\uff0c\u663e\u793a\u4f4d\u7f6e\u7b49\uff0c\u8be6\u89c1\u5b98\u65b9\u6587\u6863\u3002</p>\n<h2>dialog \u5b98\u65b9\u6587\u6863\u5730\u5740</h2>\n<blockquote>\n<p><a href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog\" rel=\"nofollow\">https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog</a></p>\n</blockquote>\n<h1>\u5176\u4ed6</h1>\n<p>\u6211\u4e0d\u662f\u4e13\u4e1a\u524d\u7aef\u4eba\u5458\uff0c\u611f\u89c9\u57fa\u4e8e dialog,  template, web component \u7684\u524d\u7aef\u6846\u67b6\u5e94\u8be5\u4f1a\u662f\u4e00\u4e2a\u597d\u7528\u7684\u6846\u67b6\u3002\n\u5982\u679c\u6709\u54ea\u4e2a\u524d\u7aef\u6846\u67b6\u5305\u542b\u8fd9\u4e9b\u5143\u7d20\uff0c\u8bc4\u8bba\u533a\u544a\u8bc9\u6211\uff0c\u611f\u8c22\u3002</p>\n", 
      "date_published": "2024-06-13T08:08:43+00:00", 
      "title": "\u7f51\u7ad9\u4e2d\u4f7f\u7528\u539f\u751f dialog \u4f18\u5316\u7528\u6237\u4f53\u9a8c", 
      "id": "https://www.v2ex.com/t/1049279"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/bigbigeggs", 
        "name": "bigbigeggs", 
        "avatar": "https://cdn.v2ex.com/gravatar/7aabe467bbf9c6ec2ef7768a102a2798?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1048255", 
      "date_modified": "2024-06-10T15:11:48+00:00", 
      "content_html": "<p>\u9632\u91cd\u653e\u89e3\u51b3\u7684\u662f\u653b\u51fb\u8005\u62ff\u5230 url \u548c\u53c2\u6570\u4e4b\u540e\uff0c\u4e0d\u65ad\u5730\u8bf7\u6c42\u670d\u52a1\u7aef\u3002</p>\n<ol>\n<li>\n<p>\u670d\u52a1\u7aef\u9488\u5bf9\u4e0b\u5355\uff0c\u652f\u4ed8\uff0c\u8f6c\u8d26\u8fd9\u79cd\u64cd\u4f5c\u80af\u5b9a\u6709\u5e42\u7b49\uff0c\u80af\u5b9a\u4e0d\u80fd\u80e1\u6765\u4e71\u6765</p>\n</li>\n<li>\n<p>\u653e\u91cd\u653e\u751f\u6210\u4e00\u4e2a token \uff0c\u8fd9\u4e2a token \u4eba\u4eba\u90fd\u77e5\u9053\u5982\u4f55\u751f\u6210\u7684\uff0c\u6bd4\u5982 timestap+\u53c2\u6570 \u7528 md5 \u8fdb\u884c\u52a0\u5bc6\uff0c\u653b\u51fb\u8005\u4e5f\u53ef\u4ee5\u5b8c\u5168\u6a21\u62df\u8fd9\u4e2a token \u7684\u751f\u6210\u89c4\u5219\uff0c\u6765\u7ed5\u8fc7\u670d\u52a1\u7aef</p>\n</li>\n<li>\n<p>\u50cf https \uff0c\u5ba2\u6237\u7aef\u79c1\u94a5\u52a0\u7b7e\u670d\u52a1\u7aef\u516c\u9a8c\u8bc1\uff0c\u90fd\u662f\u89e3\u51b3\u8fc7\u7a0b\u4e2d\u7684\u5b89\u5168\uff0c\u653e\u91cd\u653e\u89e3\u51b3\u201c\u5ba2\u6237\u7aef\u201d\u7684\u5b89\u5168\uff0c\u611f\u89c9\u5b8c\u5168\u6ca1\u5fc5\u8981\uff0c\u53cd\u800c\u589e\u52a0\u4e86\u6210\u672c</p>\n</li>\n</ol>\n<p>\u4e0a\u5468\u9762\u8bd5\u88ab\u95ee\u5230\uff0c\u611f\u89c9\u5b58\u7cb9\u4e3a\u4e86\u9762\u8bd5\u800c\u9762\u8bd5\uff0c\u5305\u62ec sync \uff0clock \uff0c\u591a\u7ebf\u7a0b\u7b49\uff0c\u5de5\u4f5c\u4e2d\u6839\u672c\u7528\u4e0d\u5230\uff0c\u5b8c\u5168\u4e0d\u95ee\u4e1a\u52a1\u4e0a\u7684\u95ee\u9898\uff0c\u4e0a\u6765\u5c31\u556a\u556a\u7684\u516b\u80a1\u6587\u8d70\u8d77\u3002</p>\n<p>\u4e3a\u4e86\u9762\u8bd5\u7531\u6b64\u5199\u4e86\u4e00\u7bc7<a href=\"https://www.cnblogs.com/wenbochang/p/18240697\" rel=\"nofollow\">\u63a5\u53e3\u653e\u91cd\u653e\u7684\u6587\u7ae0</a>\uff0c\u6b22\u8fce\u5927\u5bb6\u6307\u6b63\uff0c\u771f\u611f\u89c9\u591a\u6b21\u4e00\u4e3e\uff0c\u4e3a\u4e86\u9762\u8bd5\u800c\u9762\u8bd5\u3002</p>\n<p>\u6211\u771f\u4e0d\u76f8\u4fe1\uff0c\u54ea\u4e00\u5bb6\uff0c\u771f\u7684\u5728\u9879\u76ee\u4e2d\u5199\u4e86\u9632\u91cd\u653e\u7684\u5b9e\u73b0\u903b\u8f91\u3002</p>\n", 
      "date_published": "2024-06-10T07:24:29+00:00", 
      "title": "\u63a5\u53e3\u9632\u91cd\u653e \u662f\u4e0d\u662f\u5b58\u7cb9\u7684\u8131\u4e86\u88e4\u5b50\u653e\u5c41\uff1f", 
      "id": "https://www.v2ex.com/t/1048255"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/KyL", 
        "name": "KyL", 
        "avatar": "https://cdn.v2ex.com/avatar/ecda/908a/88630_large.png?m=1673334564"
      }, 
      "url": "https://www.v2ex.com/t/1045696", 
      "title": "VSCode \u8fd9\u79cd\u57fa\u4e8e Web \u7684\u6587\u672c\u7f16\u8f91\u5668\u4e2d\u7684\u8f93\u5165\u5149\u6807\u662f\u600e\u4e48\u5b9e\u73b0\u7684\uff1f", 
      "id": "https://www.v2ex.com/t/1045696", 
      "date_published": "2024-05-31T06:46:29+00:00", 
      "content_html": "<p>\u6253\u5f00 VSCode \u81ea\u5e26\u7684 Developer Tools \u68c0\u67e5\u7f16\u8f91\u5668\u7684\u5143\u7d20\uff0c\u53ef\u4ee5\u53d1\u73b0\u7f16\u8f91\u5668\u754c\u9762\u662f\u7531 div \u5143\u7d20\u7ec4\u6210\u7684\uff0c\u4e00\u4e2a div \u5143\u7d20\u4ee3\u8868\u4e00\u884c\u6587\u672c\u3002\u5f53\u9f20\u6807\u9009\u62e9\u67d0\u4e00\u884c\u65f6\uff0c\u8fd9\u884c\u7684 div \u4f1a\u88ab\u6dfb\u52a0 class \uff0c\u5c55\u793a\u4e0d\u540c\u7684\u5916\u89c2\u3002\u90a3\u4e48\u70b9\u51fb\u8fd9\u884c\u540e\uff0c\u4e00\u95ea\u4e00\u95ea\u7684\u5149\u6807\u662f\u600e\u4e48\u5b9e\u73b0\u7684\uff1f\u662f\u9760\u52a8\u753b\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/uiosun", 
        "name": "uiosun", 
        "avatar": "https://cdn.v2ex.com/avatar/4b6f/8ef1/391860_large.png?m=1716088179"
      }, 
      "url": "https://www.v2ex.com/t/1041972", 
      "date_modified": "2024-05-19T10:43:57+00:00", 
      "content_html": "<p>\u95ee\u9898\uff1a</p>\n<p>\u76ee\u524d\u5728\u9879\u76ee\u4e2d\u91c7\u7528 WebSocket \u957f\u8fde\u63a5\u505a\u670d\u52a1\uff0cProtobuf \u4f5c\u4e3a\u8bf7\u6c42/\u54cd\u5e94\u7684\u6570\u636e\u7ed3\u6784\u3002</p>\n<p>\u5f53\u5b58\u5728\u591a\u4e2a\u8def\u7531\u65f6\uff0c\u5982\u4f55\u5b9a\u4e49\u5b83\u4eec\u5462\uff1f</p>\n<p>\u4e3e\u4e2a\u4f8b\u5b50\uff1a\u804a\u5929\u5ba4</p>\n<p>\u63a5\u53e3 1\uff1a\uff08\u6309\u6761\u4ef6\uff09\u7b5b\u9009\u804a\u5929\u5185\u5bb9\n\u63a5\u53e3 2\uff1a\u53d1\u9001\u6d88\u606f</p>\n<p>\u8bf7\u6559\u5404\u4f4d\uff0c\u957f\u8fde\u63a5\u670d\u52a1\u5728\u8fd9\u79cd\u573a\u666f\uff0c\u5982\u4f55\u4e0e\u5ba2\u6237\u7aef\u901a\u8baf\uff08\u600e\u4e48\u5b9a\u4e49\u8def\u7531\uff0c\u6216\u8005\u5982\u679c\u4e0d\u5b9a\u4e49\uff0c\u6709\u4ec0\u4e48\u5176\u4ed6\u529e\u6cd5\u5417\uff1f\uff09</p>\n<p>\u8c22\u8c22\u5404\u4f4d\uff01</p>\n<hr/>\n<p>\u80cc\u666f\uff1a\u6211\u5bf9\u4e8e Protobuf \u3001\u957f\u8fde\u63a5\u7684\u4f7f\u7528\u7ecf\u9a8c\u6bd4\u8f83\u532e\u4e4f\uff0c\u4e4b\u524d\u53ea\u505a\u8fc7 HTTP/RPC + Protobuf \u7684\u9879\u76ee\u3002</p>\n<p>\u6211\u7684\u601d\u8def\u5386\u7a0b\uff1a</p>\n<p>\u6700\u7b80\u5355\u7684\u5c31\u662f Protobuf \u5c01\u88c5\u4e00\u4e2a\u6807\u51c6\u8def\u7531\u7ed3\u6784\uff1a</p>\n<pre><code>message IRoute {\n  string key = 1;\n  string jsonRes = 2;\n}\n</code></pre>\n<p><code>key</code> \u505a\u8def\u7531\u952e\uff0c<code>jsonRes</code> \u5c31\u662f JSON \u5b57\u7b26\u4e32\uff0c\u53ea\u6709\u54cd\u5e94\u65f6\u624d\u8fd4\u56de\u7eaf Protobuf \u5bf9\u8c61\uff0c\u4f46\u8fd9\u5c31\u4e70\u691f\u8fd8\u73e0\u4e86\u5427\uff1f\uff08\u4e0d\u5982\u76f4\u63a5\u7528 JSON \uff09</p>\n<p>\u540e\u9762\u53c8\u60f3\u5b9a\u4e49 Interface \u6765\u8bbe\u8ba1\uff0c\u5148\u5c06\u6570\u636e\u8f6c\u5316\u4e3a\u6807\u51c6\u5bf9\u8c61\uff0c\u7136\u540e\u5224\u65ad <code>key</code> \u6765\u5c06\u6570\u636e\u8f6c\u5316\u4e3a\u5b9e\u9645\u8def\u7531\uff0c\u4f46\u5bf9\u4e8c\u8fdb\u5236\u6570\u636e\uff0c\u6211\u505a\u4e0d\u5230\u53ea\u8f6c\u5316\u90e8\u5206\u5185\u5bb9\u2026\u2026</p>\n<p>\u6700\u540e\uff0c\u76ee\u524d\u6253\u7b97\u4f7f\u7528 text \u4f5c\u4e3a\u8def\u7531\uff0c\u81ea\u5df1\u624b\u52a8\u5206\u5272\uff0c\u7136\u540e\u54cd\u5e94\u65f6\u8fd4\u56de Protobuf \u5bf9\u8c61\u3002</p>\n", 
      "date_published": "2024-05-19T03:08:08+00:00", 
      "title": "\u8bf7\u6559\uff1a WebSocket + Protobuf \u505a\u670d\u52a1\uff0c\u5982\u4f55\u5b9a\u4e49\u8def\u7531", 
      "id": "https://www.v2ex.com/t/1041972"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/FenixVu", 
        "name": "FenixVu", 
        "avatar": "https://cdn.v2ex.com/avatar/e01b/e0b2/368758_large.png?m=1658718602"
      }, 
      "url": "https://www.v2ex.com/t/1040717", 
      "date_modified": "2024-05-15T07:20:25+00:00", 
      "content_html": "<p>nginx \u9650\u5236\u7684\u5927\u5c0f\u662f 200mb \u8d85\u65f6\u662f 1 \u5206\u949f\n\u6389\u540e\u7aef python \u7684 api \u4e0a\u4f20\u5230 minio \u91cc\u9762\n\u73b0\u5728\u7684\u60c5\u51b5\u662f\u4e0a\u4f20 4mb \u7684\u53ef\u4ee5\uff0c5mb \u5c31\u4e0d\u80fd\uff0c1 \u5206\u949f\u540e\u81ea\u52a8\u8fd4\u56de 504 \uff08\u65e0\u8bba\u8d70\u57df\u540d\u8fd8\u662f\u76f4\u63a5 ip+\u7aef\u53e3\uff09\n\u540e\u7aef python \u624b\u6572\u4ee3\u7801\u4e0a\u4f20\u591a\u5c11 mb \u90fd\u53ef\u4ee5\u4f20\n\u8fd9\u95ee\u9898\u51fa\u5728\u54ea\uff1f</p>\n", 
      "date_published": "2024-05-14T09:57:39+00:00", 
      "title": "web \u91cc\u4e0a\u4f20\u6587\u4ef6 4mb \u53ef\u4ee5\uff0c 5mb \u53ea\u80fd\u7b49\u8d85\u65f6\u662f\u5565\u95ee\u9898\uff1b", 
      "id": "https://www.v2ex.com/t/1040717"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/nextone", 
        "name": "nextone", 
        "avatar": "https://cdn.v2ex.com/avatar/e9d3/e7e3/79054_large.png?m=1605146942"
      }, 
      "url": "https://www.v2ex.com/t/1037176", 
      "title": "web \u5f00\u53d1\u5b9e\u6218\u7ec3\u4e60\u7684\u9879\u76ee\u6709\u54ea\u4e9b\uff1f\u4e0d\u662f\u5355\u72ec\u4e00\u4e2a\u9875\u9762\u7684\uff0c\u662f\u80fd\u5b8c\u6574\u505a\u51fa\u4e00\u4e2a\u5b8c\u6574\u7f51\u7ad9\u7684\u3002", 
      "id": "https://www.v2ex.com/t/1037176", 
      "date_published": "2024-04-30T14:04:41+00:00", 
      "content_html": "<p>\u76ee\u524d\u5df2\u7ecf\u57fa\u672c\u638c\u63e1\u524d\u7aef HTML \u3001CSS \u3001JS \u548c\u540e\u7aef flask \u6846\u67b6\uff0c\u4f46\u662f\u76ee\u524d\u5bf9\u7f51\u7ad9\u5236\u4f5c\u4f9d\u7136\u6709\u56f0\u60d1\uff0c\u6ca1\u6709\u627e\u5230\u5408\u9002\u7684\u5b9e\u6218\u9879\u76ee\uff0c\u628a\u8fd9\u4e9b\u77e5\u8bc6\u4e32\u8054\u8d77\u6765\u3002\u6709\u6ca1\u6709\u9002\u5408\u89e3\u51b3\u6211\u5f53\u4e0b\u56f0\u60d1\u7684\u5b9e\u6218\u9879\u76ee\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zsk425", 
        "name": "zsk425", 
        "avatar": "https://cdn.v2ex.com/avatar/b2aa/53f4/80144_large.png?m=1726222969"
      }, 
      "url": "https://www.v2ex.com/t/1037015", 
      "title": "\u5173\u4e8e Web \u5f00\u53d1\u56f0\u60d1\uff0c\u8bf7\u6559\u4ece\u79fb\u52a8\u5f00\u53d1\u8f6c\u5230 Web \u5f00\u53d1\u7684\u5927\u4f6c", 
      "id": "https://www.v2ex.com/t/1037015", 
      "date_published": "2024-04-30T04:02:34+00:00", 
      "content_html": "<p>\u672c\u4eba\u5bf9 Web \u5f00\u53d1\u8ba4\u77e5\u8fd8\u505c\u7559\u5728\u624b\u6572 HTML+CSS+JS \u7684\u6c34\u5e73\uff0c\u4e0d\u4e86\u89e3\u4efb\u4f55\u6846\u67b6\uff0c\u6709\u4e00\u4e9b\u7684\u79fb\u52a8\u5f00\u53d1\u7ecf\u9a8c\u3002\u6709\u4ee5\u4e0b\u56f0\u60d1\uff1a</p>\n<ol>\n<li>Web \u5f00\u53d1\u662f\u5426\u6709\u50cf\u79fb\u52a8\u5f00\u53d1\u4e00\u6837\uff0c\u53ef\u4ee5\u4f7f\u7528\u50cf Android \u7684\u7ea6\u675f\u5e03\u5c40\uff08\u5bf9\u5e94 iOS \u81ea\u52a8\u5e03\u5c40\uff09\uff0c\u4e2a\u4eba\u89c9\u5f97 CSS \u5e03\u5c40\u592a\u590d\u6742</li>\n<li>\u662f\u5426\u6709\u9762\u5411\u5bf9\u8c61\u7684\u7ec4\u4ef6\uff0c\u6bd4\u5982 scrollview \u7ec4\u4ef6\uff0c\u8c03\u7528\u81ea\u8eab\u5c01\u88c5\u7684\u65b9\u6cd5\u53ef\u4ee5\u6ed1\u52a8\u5230\u5e95\u90e8\uff0c\u800c\u4e0d\u662f\u624b\u5199\u4e00\u5927\u6bb5 JS \u4ee3\u7801</li>\n</ol>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/yocoso", 
        "name": "yocoso", 
        "avatar": "https://cdn.v2ex.com/gravatar/6b6b7cfaa2ad432e0fb8c48d44824ffc?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1000535", 
      "title": "\u8bf7\u6559\u4e00\u4e0b web app \u67b6\u6784\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1000535", 
      "date_published": "2023-12-14T20:02:02+00:00", 
      "content_html": "<p>\u9996\u5148\u662f\u524d\u540e\u7aef\u5206\u79bb\uff0c\n\u6709\u4e00\u4e2a restful api \u76f4\u63a5\u5904\u7406\u524d\u7aef\u6570\u636e\uff0c\n\u518d\u6709\u4e00\u4e2a http api \u5904\u7406\u4e00\u4e9b\u7279\u6b8a\u95ee\u9898\uff0c\n\u8fd8\u6709\u4e00\u4e2a web socket \u8fdb\u884c\u5b9e\u65f6\u901a\u4fe1\u3002\n\uff08\u4e0d\u540c\u540e\u7aef\u7531\u4e0d\u540c\u7ec4\u5b8c\u6210\uff0c\u6280\u672f\u6808\u4e5f\u4e0d\u4e00\u6837\uff0c\u4e5f\u4f1a\u5355\u72ec\u90e8\u7f72\uff09</p>\n<p>\u6240\u6709 api \uff0cws \u90fd\u9700\u8981\u5148\u9a8c\u8bc1\u8bf7\u6c42\u5408\u6cd5\uff08\u7528\u6237\u9a8c\u8bc1\uff09\u3002</p>\n<p>\u8bf7\u6559\u4e00\u4e0b\u5927\u5bb6\u4f1a\u91c7\u7528\u54ea\u79cd\u6784\u67b6\uff1f</p>\n<ol>\n<li>\u521b\u5efa\u4e00\u4e2a\u516c\u5171\u7684\u9a8c\u8bc1\u670d\u52a1\u5668\uff0c\u6bcf\u4e2a api \u540e\u7aef\u90fd\u5404\u81ea\u53bb\u8fd9\u4e2a\u9a8c\u8bc1\u670d\u52a1\u5668\u9a8c\u8bc1\uff0c\u524d\u7aef\u76f4\u63a5\u548c\u5404\u4e2a api \u8fde\u3002</li>\n<li>\u4f7f\u7528 API gateway \uff0cgateway \u505a\u9a8c\u8bc1\uff0c\u8f6c\u53d1\u8bf7\u6c42\uff0c\u524d\u7aef\u53ea\u548c api gateway \u8fde\u3002\uff08\u4f46\u4e0d\u77e5\u9053 websocket \u662f\u5426\u5408\u9002\u5b9e\u65f6\u8f6c\u53d1\uff1f\uff09</li>\n<li>\u5176\u4ed6\u65b9\u6848\uff1f</li>\n</ol>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/TBKui", 
        "name": "TBKui", 
        "avatar": "https://cdn.v2ex.com/avatar/6683/9987/662698_large.png?m=1700045801"
      }, 
      "url": "https://www.v2ex.com/t/998387", 
      "date_modified": "2023-12-08T00:21:22+00:00", 
      "content_html": "<p>\u60f3\u7528\u6765\u505a\u8d44\u6e90\u5206\u4eab\uff0c\u7f51\u4e0a\u7684\u6559\u7a0b\u4e5f\u770b\u4e86\u4e00\u4e9b\uff0c\u8981\u8d2d\u4e70\u670d\u52a1\u5668\u548c\u57df\u540d\u7b49\u7b49\u3002\n\u7f51\u4e0a\u7684\u4fe1\u606f\u771f\u771f\u5047\u5047\uff0c\u5bf9\u4e8e\u6ca1\u6709\u76f8\u5173\u77e5\u8bc6\u80cc\u666f\u7684\u5c0f\u767d\u6015\u6389\u5751\u91cc\uff0c\n\u6240\u4ee5\u5728\u6b64\u771f\u5fc3\u6c42\u6559\u5404\u4f4d\u5927\u4f6c</p>\n", 
      "date_published": "2023-12-07T07:37:03+00:00", 
      "title": "\u8bf7\u6559\u5404\u4f4d\uff0c\u4f5c\u4e3a\u4e00\u540d\u8ba1\u7b97\u673a\u5c0f\u767d\u8bbe\u8ba1\u5e08\uff0c\u7528\u4ec0\u4e48\u5e73\u53f0\u642d\u5efa\u81ea\u5df1\u7684\u4e2a\u4eba\u7f51\u7ad9\u6bd4\u8f83\u597d\uff1f", 
      "id": "https://www.v2ex.com/t/998387"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/F1ySyn", 
        "name": "F1ySyn", 
        "avatar": "https://cdn.v2ex.com/gravatar/825274d793f71d3c2e7b74b63b3eeced?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/988715", 
      "title": "\u76ee\u524d\u8fd8\u6709\u6ca1\u6709\u56fd\u5185\u8bbf\u95ee\u6bd4\u8f83\u53cb\u597d\u7684\u9759\u6001\u7f51\u9875\u6258\u7ba1\u670d\u52a1", 
      "id": "https://www.v2ex.com/t/988715", 
      "date_published": "2023-11-04T22:07:05+00:00", 
      "content_html": "RT \uff0c\u76ee\u524d\u8bd5\u8fc7 Cloudflare Page \u3001Vercel \u7b49\u90fd\u662f\u76f4\u63a5\u7ffb\u8f66\uff0c\u7f51\u9875\u5df2\u7ecf\u5199\u597d\u4e86\u6ca1\u5730\u65b9\u4f20\u5f88\u662f\u5934\u75bc\u3002\u7136\u540e\u6211\u7684\u57df\u540d\u662f\u5728 Cloudflare \u7684\uff0c\u56e0\u6b64\u5982\u679c\u662f\u56fd\u5185\u670d\u52a1\u7684\u8bdd\uff0c\u62c5\u5fc3\u5907\u6848\u4e5f\u4f1a\u5f88\u9ebb\u70e6\uff0c\u5f53\u7136\u6709\u4e0d\u9519\u7684\u4e5f\u53ef\u4ee5\u63a8\u8350\u3002\u56fd\u5185\u6d4f\u89c8\u91cf\u5176\u5b9e\u4e0d\u5927\uff0c\u56e0\u6b64\u80fd\u514d\u8d39\u6216\u8005\u5c3d\u91cf\u4fbf\u5b9c\u7684\u662f\u6700\u5408\u9002\u7684\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Gaussen", 
        "name": "Gaussen", 
        "avatar": "https://cdn.v2ex.com/avatar/5893/73e1/337112_large.png?m=1532920266"
      }, 
      "url": "https://www.v2ex.com/t/988354", 
      "date_modified": "2023-11-05T09:46:58+00:00", 
      "content_html": "<p>\u6b63\u5728\u505a\u4e00\u4e2a\u65e5\u5fd7\u6355\u83b7\u7cfb\u7edf\uff0c\u9700\u8981\u5bf9\u9879\u76ee\u4e2d\u5bf9\u5916\u7684 curl \u8bf7\u6c42\u8fdb\u884c\u4e00\u4e2a\u65e5\u5fd7\u8bb0\u5f55\u3002\n\u76ee\u524d\u7528\u7684\u662f guzzlehttp \u7684\u4e00\u4e2a fork \u7248\u672c\uff0c\u6211\u8bd5\u4e86\u4e00\u4e0b\u5982\u679c\u662f Illuminate\\Support\\Facades\\Http \u53d1\u8d77\u7684 get/post \u8bf7\u6c42\uff0c\u53ef\u4ee5\u901a\u8fc7\u76d1\u542c Illuminate\\Http\\Client\\Events\\RequestSending \u4e8b\u4ef6\u83b7\u53d6\uff0c\u4f46\u662f\u901a\u8fc7 GuzzleHttp\\Client \u53d1\u8d77\u7684\u8bf7\u6c42\uff0c\u5c31\u65e0\u6cd5\u83b7\u53d6\u5230\u4e86\u3002\n\u60f3\u4e86\u89e3\u4e00\u4e0b GuzzleHttp\\Client \u5728\u53d1\u8d77\u8bf7\u6c42\u7684\u65f6\u5019\uff0c\u6709\u4ec0\u4e48\u4e8b\u4ef6\u53ef\u4ee5\u76d1\u542c\u5417\uff1f</p>\n", 
      "date_published": "2023-11-03T08:53:16+00:00", 
      "title": "\u8bf7\u95ee\u6709\u4ec0\u4e48\u4e8b\u4ef6\u53ef\u4ee5\u76d1\u542c\u5230 GuzzleHttp \u7684 curl \u8bf7\u6c42\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/988354"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sdjl", 
        "name": "sdjl", 
        "avatar": "https://cdn.v2ex.com/avatar/be6a/d876/5055_large.png?m=1741067330"
      }, 
      "url": "https://www.v2ex.com/t/984029", 
      "date_modified": "2023-10-21T09:11:40+00:00", 
      "content_html": "<p>\u6211\u7684\u5c0f\u7a0b\u5e8f\u4f7f\u7528\u4e86\u5fae\u4fe1\u7684\u4e91\u5f00\u53d1\uff0c\u63d0\u4f9b\u4e86\u56fe\u7247\u4e0a\u4f20\u529f\u80fd\u3002</p>\n<p>\u7528\u6237\u4e0a\u4f20\u56fe\u7247\u540e\uff0c\u5c31\u80fd\u5728\u524d\u7aef\u83b7\u5f97\u4e00\u4e2a\u56fe\u7247\u7684 URL \u4e86\uff0c\u8fd9\u4e2a URL \u653e\u5165\u6d4f\u89c8\u5668\u662f\u53ef\u4ee5\u8bbf\u95ee\u7684\u3002</p>\n<p>\u90a3\u4e48\u95ee\u9898\u6765\u4e86\uff0c\u5982\u679c\u6709\u4eba\u628a\u6211\u7684\u5c0f\u7a0b\u5e8f\u5f53\u56fe\u5e8a\u4f7f\u7528\u600e\u4e48\u529e\uff1f \u5fae\u4fe1\u662f\u5426\u6709\u9632\u8303\u63aa\u65bd\uff1f</p>\n<p>\u8fd8\u6709\u4e00\u79cd\u60c5\u51b5\u662f\u88ab\u6076\u610f\u653b\u51fb\uff0c\u4f8b\u5982\u4e0a\u4f20\u4e00\u4e9b\u56fe\u7247\uff0c\u628a\u56fe\u7247 URL \u653e\u5728 html \u4e2d\uff0c\u8ba9\u5927\u91cf\u7528\u6237\u6765\u4e0b\u8f7d\uff0c\u6d88\u8017\u6211\u7684\u6d41\u91cf\u8d44\u6e90\u3002</p>\n", 
      "date_published": "2023-10-21T05:53:28+00:00", 
      "title": "\u5982\u679c\u522b\u4eba\u62ff\u6211\u7684\u5fae\u4fe1\u4e91\u73af\u5883\u5f53\u56fe\u5e8a\u4f7f\u7528\uff0c\u5fae\u4fe1\u6709\u6ca1\u6709\u9632\u5fa1\u63aa\u65bd\uff1f", 
      "id": "https://www.v2ex.com/t/984029"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sdjl", 
        "name": "sdjl", 
        "avatar": "https://cdn.v2ex.com/avatar/be6a/d876/5055_large.png?m=1741067330"
      }, 
      "url": "https://www.v2ex.com/t/984020", 
      "date_modified": "2023-10-21T09:13:22+00:00", 
      "content_html": "<p>\u4e1a\u52a1\u4e0a\u9700\u8981\u628a\u957f\u94fe\u63a5\u8f6c\u4e3a\u77ed\u94fe\u63a5\uff0c\u4e0d\u60f3\u81ea\u5df1\u505a\uff08\u56e0\u4e3a\u4e0d\u60f3\u81ea\u5df1\u7ef4\u62a4\u670d\u52a1\u5668\uff09\u3002</p>\n<p>\u4e5f\u4e0d\u6562\u7528\u5c0f\u516c\u53f8\u7684\u4ea7\u54c1\uff0c\u6015\u4e0d\u7a33\u5b9a\u3002</p>\n<p>\u8bf7\u95ee\u6709\u6ca1\u6709\u5927\u516c\u53f8\u5728\u63d0\u4f9b\u8fd9\u6837\u7684\u670d\u52a1\uff1f</p>\n<p>\u8bbf\u95ee\u8005\u4e3b\u8981\u5728\u6d77\u5916\uff0c\u53ef\u4ee5\u4e0d\u8003\u8651\u56fd\u5185\u7528\u6237\u7684\u8bbf\u95ee\u901f\u5ea6\u3002</p>\n<p>\u9700\u8981 API \u63a5\u53e3\uff0c\u751f\u6210\u7684\u94fe\u63a5\u6bd4\u8f83\u591a\u3002</p>\n", 
      "date_published": "2023-10-21T04:44:20+00:00", 
      "title": "\u817e\u8baf\u73b0\u5728\u8fd8\u63d0\u4f9b url.cn \u8fd9\u79cd\u77ed\u94fe\u63a5\u670d\u52a1\u5417\uff1f \u8fd8\u6709\u5927\u516c\u53f8\u63d0\u4f9b\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/984020"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/nobject", 
        "name": "nobject", 
        "avatar": "https://cdn.v2ex.com/gravatar/7cd7ecad145eb03933d66bb3211075bd?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/982398", 
      "date_modified": "2023-10-16T07:37:08+00:00", 
      "content_html": "<p>\u6700\u8fd1\u5728\u770b\u4e86\u4e00\u70b9<code>oidc</code>\u76f8\u5173\u7684\u534f\u8bae\u5185\u5bb9\uff0c\u60f3\u4ee5\u6b64\u6765\u505a\u5355\u70b9\u767b\u5f55\u3002\u4f46\u770b\u4e86\u534f\u8bae\uff0c\u8fd8\u6709\u597d\u591a\u4e0d\u592a\u660e\u767d\u7684\u5730\u65b9\u3002</p>\n<p><code>oidc</code>\u76f8\u6bd4<code>oauth2</code>\u6765\u8bf4, \u591a\u4e86\u4e00\u4e2a<code>id_token</code>\uff0c\u7528\u4e8e\u8eab\u4efd\u8ba4\u8bc1\uff0c\u800c\u672c\u8eab<code>oauth2</code>\u90e8\u5206\u7684\u53c8\u6709<code>access_token</code>\u53ca<code>refresh_token</code>\uff0c<code>access_token</code>\u662f\u7528\u4e8e\u4fdd\u62a4\u8d44\u6e90\u7684\uff0c<code>refresh_token</code>\u662f\u7528\u4e8e\u5237\u65b0<code>access_token</code>\u7684.</p>\n<p>\u90a3\u4e3e\u4e2a\u7b80\u5355\u7684\u4f7f\u7528\u573a\u666f:<br/>\n\u4e00\u4e2a\u5e73\u53f0\uff0c\u6709\u4ee5\u4e0b\u51e0\u4e2a\u670d\u52a1\uff0c\n\u7edf\u4e00\u8eab\u4efd\u8ba4\u8bc1\u7684\u670d\u52a1<code>identify</code>(\u57fa\u4e8e<code>oidc</code>\u534f\u8bae\u5b9e\u73b0\u7684<code>idp</code>)\n\u670d\u52a1 A(<a href=\"http://a.com\" rel=\"nofollow\">a.com</a>)\n\u670d\u52a1 B(<a href=\"http://b.com\" rel=\"nofollow\">b.com</a>)\n\u90a3\u5728 oidc \u4f53\u7cfb\u4e2d\uff0c<code><a href=\"http://a.com\" rel=\"nofollow\">a.com</a></code>, <code><a href=\"http://b.com\" rel=\"nofollow\">b.com</a></code> \u5b9e\u9645\u4e0a\u662f\u4e24\u4e2a\u5e94\u7528(client)</p>\n<p>\u6b63\u5e38\u7684\u6d41\u7a0b\u5c31\u662f:<br/>\n<code><a href=\"http://a.com\" rel=\"nofollow\">a.com</a></code>\u5224\u65ad\u672c\u5730\u662f\u5426\u6709<code>token</code>(\u57fa\u4e8e<code>localstorage</code>\u662f\u5426\u6709\u76f8\u5173\u7684\u5b58\u50a8)\uff0c\n\u5982\u679c\u6709\uff0c\u5219\u6bcf\u6b21\u6b63\u5e38\u8bf7\u6c42\u643a\u5e26<code>token</code>,\n\u5982\u679c\u6ca1\u6709\uff0c\u5219\u643a\u5e26 client \u4fe1\u606f(client_id,redirct_uri,scope \u7b49)\u8df3\u8f6c\u81f3<code>identify</code>\u670d\u52a1\u7684\u767b\u5f55\u9875\u9762\uff0c\n<code>identify</code>\u670d\u52a1\u4f1a\u5bf9\u7528\u6237\u7684\u7528\u6237\u540d\u5bc6\u7801\u8ba4\u8bc1\uff0c\u8ba4\u8bc1\u6210\u529f\u540e\u8df3\u8f6c\u81f3<code><a href=\"http://a.com/callback?code=xxxxx&amp;state=xxx\" rel=\"nofollow\">a.com/callback?code=xxxxx&amp;state=xxx</a></code>\n<code><a href=\"http://a.com\" rel=\"nofollow\">a.com</a></code> \u6839\u636e<code>code</code>\u7801\u83b7\u53d6\u5230<code>id_token</code>,<code>access_token</code>\u548c<code>refresh_token</code></p>\n<p>\u90a3\u4e48\u6709\u4ee5\u4e0b\u7591\u95ee\uff1a<br/>\n\u95ee\u9898 1: \u524d\u7aef\u4e2d<code>header</code>\u5934\u4e0a\u4f7f\u7528\u7684<code>authorization</code>\u662f\u585e<code>id_token</code>\u8fd8\u662f<code>access_token</code>? \u6309\u7167\u5b9a\u4e49\uff0c\u5e94\u8be5\u662f<code>id_token</code>\u5427\u3002\n\u90a3<code>access_token</code>\u7684\u4f5c\u7528\u662f\u4e0d\u662f\u5982\u679c\u6211\u7684\u8d44\u6e90\u53ea\u662f\u9650\u5b9a\u6709\u6ca1\u6709\u767b\u5f55\uff0c\u767b\u5f55\u5c31\u53ef\u4ee5\u8bbf\u95ee\u6240\u6709\u7684\u8d44\u6e90(api \u7684\u9274\u6743\u6709\u53e6\u5916\u7684\u9274\u6743\u670d\u52a1)\uff0c\u90a3\u5176\u5b9e<code>access_token</code>\u5728\u8fd9\u79cd\u573a\u666f\u4e0b\u5c31\u6ca1\u6709\u610f\u4e49\uff1f</p>\n<p>\u95ee\u9898 2\uff1a<code>refresh_token</code>\u7684\u4f5c\u7528\u662f\u7528\u6765\u5237\u65b0<code>id_token</code>\u8fd8\u662f<code>access_token</code>? \u56e0\u4e3a<code>refresh_token</code>, <code>access_token</code>\u662f oauth2 \u5c31\u6709\u7684\u6982\u5ff5\uff0c\u6700\u5f00\u59cb refresh_token \u80af\u5b9a\u662f\u5237 access_token \u7684\uff0c\n\u90a3\u5982\u679c\u4f7f\u7528<code>id_token</code>\uff0c\u56e0\u4e3a jwt \u7684\u7b7e\u53d1\u540e\u65e0\u6cd5\u56de\u6536\uff0c<code>id_token</code>\u7406\u8bba\u4e0a\u4e5f\u662f\u65f6\u6548\u8bbe\u7f6e\u6210\u6bd4\u8f83\u77ed\u7684\u4e00\u4e2a\u65f6\u957f\uff0c\u90a3\u8fd9\u6837\u5fc5\u7136\u662f\u9700\u8981 refresh_token \u53bb\u4fdd\u8bc1\u81ea\u52a8\u65f6\u957f\u7eed\u671f\uff0c\u6240\u4ee5\u53ef\u4ee5\u4f7f\u7528\u8fd4\u56de\u7684 refresh_token \u503c\u53bb\n\u5237\u65b0 id_token \u4e48\uff1f</p>\n<p>\u95ee\u9898 3\uff1a\u5728\u591a\u5e94\u7528\u573a\u666f\u7684\u5355\u70b9\u767b\u5f55\u4e0b\uff0c\u6bd4\u5982<code><a href=\"http://a.com\" rel=\"nofollow\">a.com</a></code>\u6309\u7167\u4ee5\u4e0a\u6d41\u7a0b\u767b\u5f55\u4e86\uff0c\u90a3\u7406\u8bba\u4e0a\u5728\u540c\u4e00\u4e2a\u6d4f\u89c8\u5668\u4e0b\uff0c\u8bbf\u95ee<code><a href=\"http://b.com\" rel=\"nofollow\">b.com</a></code>\u5e94\u8be5\u4e5f\u662f\u767b\u5f55\u72b6\u6001\u7684\u3002\u90a3\u8fd9\u4e2a\u767b\u5f55\u72b6\u6001\u662f\u600e\u4e48\u5224\u65ad\u5462\uff1f<code><a href=\"http://b.com\" rel=\"nofollow\">b.com</a></code>\u7684\u672c\u5730\u5b58\u50a8\u91cc\u80af\u5b9a\u662f\u6ca1\u6709\u5b58\u50a8 id_token \u7684\u3002\n\u90a3\u6b64\u65f6\uff0c\u662f\u4e0d\u662f\u5728<code><a href=\"http://a.com\" rel=\"nofollow\">a.com</a></code>\u767b\u5f55\u7684\u65f6\u5019\uff0c\u767b\u5f55\u6210\u529f\u5176\u5b9e\u5c31\u5e94\u8be5\u5728<code>identify</code>\u7684\u524d\u7aef\u7684<code>localstorage</code>\u91cc\u5b58\u50a8<code>id_token</code>\uff1f\u90a3\u8fd9\u6837\u95ee\u9898\u53c8\u6765\u4e86\uff0c\u5237\u65b0<code>token</code>\u4e86\u600e\u4e48\u529e? \u5237\u65b0 token \u4e00\u822c\u5728\u5e94\u7528\u7aef\u53d1\u8d77\uff0c\n\u4f46\u53c8\u5f71\u54cd\u4e0d\u5230<code>identify</code>\u670d\u52a1\u7684\u524d\u7aef\u5b58\u50a8. \u6ca1\u6709\u60f3\u5230\u6bd4\u8f83\u5b8c\u7f8e\u7684\u95ed\u73af</p>\n", 
      "date_published": "2023-10-16T05:12:58+00:00", 
      "title": "oidc \u5728\u5355\u70b9\u767b\u5f55\u573a\u666f\u4e0b\u662f\u600e\u4e48\u4f7f\u7528\u7684\uff1f id_token,access_token \u8fd8\u662f\u4e0d\u592a\u660e\u767d", 
      "id": "https://www.v2ex.com/t/982398"
    }
  ]
}