{
  "version": "https://jsonfeed.org/version/1", 
  "title": "HTTP", 
  "description": "\u4e92\u8054\u7f51\u57fa\u7840\u534f\u8bae\u4e4b\u4e00 Hypertext Transport Protocol \u7684\u5e94\u7528\u548c\u6280\u672f\u7ec6\u8282\u8ba8\u8bba", 
  "home_page_url": "https://www.v2ex.com/go/http", 
  "feed_url": "https://www.v2ex.com/feed/http.json", 
  "icon": "https://cdn.v2ex.com/navatar/7f1d/e29e/135_large.png?m=1643850486", 
  "favicon": "https://cdn.v2ex.com/navatar/7f1d/e29e/135_normal.png?m=1643850486", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/wfg", 
        "name": "wfg", 
        "avatar": "https://cdn.v2ex.com/gravatar/e098de2925c0d1de06070379e9117e1c?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1188680", 
      "title": "\u7528\u4e0a\u4e86 Let\u2019s Encrypt \u7684 IP \u8bc1\u4e66\uff0c\u592a\u9999\u4e86", 
      "id": "https://www.v2ex.com/t/1188680", 
      "date_published": "2026-01-27T04:03:10+00:00", 
      "content_html": "\u4e0d\u7528\u5907\u6848\u4e5f\u80fd\u7ed9\u56fd\u5185\u670d\u52a1\u5668\u4e0a HTTPS \u4e86\uff0c\u6211\u7684 webdav \u7ec8\u4e8e\u4e0d\u7528 HTTP \u88f8\u5954\u4e86\u2026\u2026"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zhoufan47", 
        "name": "zhoufan47", 
        "avatar": "https://cdn.v2ex.com/gravatar/fa322bbd5f1d1a8a7ecc6aac84d3933f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1157722", 
      "date_modified": "2025-09-08T02:49:34+00:00", 
      "content_html": "<p>\u6700\u8fd1\u642d\u5efa\u4e86\u4e00\u4e2a\u4e2a\u4eba\u7f51\u7ad9\uff0c\u8bb0\u5f55\u4e00\u4e9b\u642d\u5efa NAS \u548c DOCKER \u7684\u4e8b\u60c5\n\u6b63\u597d\u4ece\u963f\u91cc\u4e91\u8585\u4e86\u4e2a 99 \u4e00\u5e74\u7684 ECS \u4e3b\u673a\uff0c\u642d\u914d\u4e4b\u524d\u5728\u817e\u8baf\u4e91\u6ce8\u518c\u7684\u57df\u540d\n\u4e3b\u673a\u4e0a\u4f7f\u7528\u4e86 1panel \u65b9\u4fbf\u7ba1\u7406\uff0c\u7528 docker \u8fd0\u884c\u4e86 halo,\u5e76\u4e14\u4f7f\u7528 1panel \u7533\u8bf7\u4e86*.\u57df\u540d\u7684 ssl \u8bc1\u4e66\u3002</p>\n<p>halo \u7684\u7f51\u7edc\u6a21\u5f0f\u662f\u6865\u63a5\u6a21\u5f0f\uff0c\u901a\u8fc7 openresty \u53cd\u5411\u4ee3\u7406\u5230\u5916\u7f51\uff0c\u7136\u540e\u6709 openresty \u63d0\u4f9b ssl \u670d\u52a1\u3002</p>\n<p>\u4e4b\u540e\u5c31\u9047\u5230\u4e00\u4e2a\u7279\u522b\u8be1\u5f02\u7684\u95ee\u9898\nmac \u3001pc \u7684 chrome \u7cfb\u3001firefox \u6d4f\u89c8\u5668\u8bbf\u95ee\u7f51\u7ad9\u90fd\u6ca1\u95ee\u9898</p>\n<p>\u4f46\u662f ios \u548c mac \u5e73\u53f0\u7684 safari \u6d4f\u89c8\u5668\u6253\u5f00\u7f51\u7ad9\uff0c\u57fa\u672c\u7b2c\u4e00\u6b21\u90fd\u662f\u63d0\u793a connection was lost,\u5fc5\u987b\u5237\u65b0\u4e2a\u51e0\u6b21\u624d\u80fd\u6253\u5f00\u7f51\u7ad9\uff0c\u4e4b\u540e\u53ea\u8981\u4e0d\u5173\u6389\u6807\u7b7e\u9875\u4e5f\u80fd\u6b63\u5e38\u8bbf\u95ee\u3002\n\u6709\u6ca1\u6709\u670b\u53cb\u9047\u5230\u8fc7\u6b64\u7c7b\u7684\u95ee\u9898?</p>\n<p>\u7f51\u7ad9\u7f51\u5740\uff1a<a href=\"http://www.bangzonghao.top\" rel=\"nofollow\">www.bangzonghao.top</a></p>\n", 
      "date_published": "2025-09-08T02:48:28+00:00", 
      "title": "safari \u65e0\u6cd5\u6253\u5f00\u7f51\u7ad9\uff0c\u4f46 chrome \u53ef\u4ee5", 
      "id": "https://www.v2ex.com/t/1157722"
    }, 
    {
      "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/1097358", 
      "title": "\u5927\u5bb6\u4e00\u822c\u5982\u4f55\u4fdd\u8bc1\u670d\u52a1\u5668 set-cookie \u6309\u5e8f\u4fdd\u5b58\u7684", 
      "id": "https://www.v2ex.com/t/1097358", 
      "date_published": "2024-12-13T08:56:23+00:00", 
      "content_html": "<p>\u5047\u8bbe\u670d\u52a1\u5668\u4f1a\u5728\u8bf7\u6c42\u54cd\u5e94\u4e2d\u66f4\u65b0 set cookie \u3002\u5047\u8bbe\u670d\u52a1\u5668 set cookie \u7684\u987a\u5e8f\u5f88\u91cd\u8981\u3002</p>\n<p>\u5982\u679c\u591a\u4e2a\u8bf7\u6c42\uff0c\u670d\u52a1\u5668\uff08\u5185\u90e8\u4f1a\u4e32\u884c\u5316\uff09\uff0c\u6240\u4ee5\u8bbe\u7f6e\u7684 Cookie \u6709\u65b0\u65e7\u4e4b\u5206\u3002\u65b0 Set \u7684 Cookie \u53ef\u4ee5\u8986\u76d6\u65e7 Cookie \uff0c\u4f46\u7edd\u5bf9\u4e0d\u5141\u8bb8\u65e7 Cookie \u8986\u76d6\u65b0 Cookie \u3002</p>\n<p>\u4f46\u662f\u5982\u679c\u4e0d\u662f\u4e32\u884c\u5316\u53d1\u51fa\u8bf7\u6c42\uff0c\u90a3\u4e48\u5373\u4f7f\u5148\u53d1\u51fa A \uff0c\u4e5f\u65e0\u6cd5\u4fdd\u8bc1 A \u7684\u54cd\u5e94\uff08\u66f4\u65b0 cookie \uff09\u53d1\u751f\u5728 B \u54cd\u5e94\u4e4b\u524d\u3002\u5c31\u662f\u8bf4\u670d\u52a1\u5668\u8bbe\u7f6e\u7684\u65b0 Cookie \u53ef\u80fd\u88ab\u65e7\u7684\u54cd\u5e94\u8986\u76d6\u3002</p>\n<p>\u4e00\u822c\u600e\u4e48\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u5462\uff1f</p>\n<ul>\n<li>\u5b8c\u5168\u4e32\u884c\u5316\u8bbf\u95ee\uff1f</li>\n<li>\u643a\u5e26\u7248\u672c\u4fe1\u606f\uff1f</li>\n<li>\u65f6\u95f4\u6233\uff1f</li>\n</ul>\n<p>\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u6bd4\u8f83 Best Practice \u7684\u505a\u6cd5\u3002\u5982\u679c HttpOnly \uff0c\u90a3\u4e48 web \u7aef\u4f3c\u4e4e\u624b\u6bb5\u66f4\u52a0\u6709\u9650\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/paranoiagu", 
        "name": "paranoiagu", 
        "avatar": "https://cdn.v2ex.com/gravatar/d86363b57ea0d2aeeacee9e9650725b5?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1062952", 
      "title": "\u660e\u5fa1 WEB \u5e94\u7528\u9632\u706b\u5899 \u5982\u4f55\u627e\u56de\u5bc6\u7801\uff1f", 
      "id": "https://www.v2ex.com/t/1062952", 
      "date_published": "2024-08-06T07:15:18+00:00", 
      "content_html": "<p>\u660e\u5fa1 WEB \u5e94\u7528\u9632\u706b\u5899\uff0c\u88c5\u5728\u4e00\u4e2a centos \u4e0a\uff0c\u77e5\u9053\u64cd\u4f5c\u7cfb\u7edf\u7684 root \u5bc6\u7801\uff0c\u4f46\u662f\u4e0d\u77e5\u9053 waf \u7684\u7ba1\u7406\u5458\u8d26\u53f7\u5bc6\u7801\u3002\n\u8bf7\u95ee\u5982\u4f55\u627e\u56de\u5bc6\u7801\uff1f\u6216\u8005\u91cd\u8bbe\u5bc6\u7801\uff1f</p>\n<p>\u53e6\u5916\uff0c\u6709\u4eba\u77e5\u9053\u8fd9 waf \u7684\u6388\u6743\u7ed1\u5b9a\u786c\u4ef6\u5417\uff1f\u73b0\u5728\u9700\u8981\u8fc1\u79fb\u865a\u62df\u673a\uff0c\u8fc1\u79fb\u540e\u9700\u8981\u91cd\u65b0\u6388\u6743\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/7inFen", 
        "name": "7inFen", 
        "avatar": "https://cdn.v2ex.com/avatar/5a0d/d007/501434_large.png?m=1702021305"
      }, 
      "url": "https://www.v2ex.com/t/1035155", 
      "date_modified": "2024-04-26T14:50:18+00:00", 
      "content_html": "<p>\u4f7f\u7528\u7684 acme \u81ea\u7b7e\u540d\u8bc1\u4e66\uff08 ZeroSSL \uff09</p>\n<ol>\n<li>\u76f4\u8fde\u6a21\u5f0f\u4e0b\uff0chttps \u7f51\u7ad9\u6253\u4e0d\u5f00\uff0chttp \u6b63\u5e38\u6253\u5f00</li>\n<li>\u4ee3\u7406\u6a21\u5f0f\u4e0b\uff0chttps \u548c http \u5747\u80fd\u6b63\u5e38\u6253\u5f00</li>\n</ol>\n<p>\u624b\u52a8\u66f4\u65b0\u8bc1\u4e66\u540e\u95ee\u9898\u4f9d\u7136\u5b58\u5728</p>\n<p>\u6628\u665a\u51cc\u6668\u6b63\u5e38\u4f7f\u7528\uff0c\u4eca\u65e9\u8d77\u6765\u7a81\u7136\u51fa\u73b0\u8fd9\u4e2a\u95ee\u9898\u4e86</p>\n<p>\u8bf7\u95ee\u4f1a\u662f\u4ec0\u4e48\u539f\u56e0\u9020\u6210\u7684\uff1f</p>\n", 
      "date_published": "2024-04-24T02:08:13+00:00", 
      "title": "\u76f4\u8fde\u6a21\u5f0f\u4e0b https \u7f51\u7ad9\u6253\u4e0d\u5f00", 
      "id": "https://www.v2ex.com/t/1035155"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/fenglirookie", 
        "name": "fenglirookie", 
        "avatar": "https://cdn.v2ex.com/gravatar/1d15b5d761612945f51e15c85e50de07?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1016108", 
      "title": "\u5173\u4e8e\u5728\u5176\u4ed6\u56fd\u5bb6\u8bbf\u95ee\u4e2d\u56fd\u56fd\u5185\u6570\u636e\u51fa\u73b0\u4e25\u91cd\u4e22\u5305\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1016108", 
      "date_published": "2024-02-18T01:32:47+00:00", 
      "content_html": "<p>\u6211\u5728\u4e2d\u56fd\u7684\u817e\u8baf\u670d\u52a1\u5668\u4e0a\u6709\u4e00\u4e2a java \u670d\u52a1\uff0c\u7136\u540e\u6211\u5728 vercel \u4e0a\u90e8\u7f72\u4e86\u4e00\u4e2a nodejs \u670d\u52a1\uff0c\u6211\u5728 vercel \u4e0a\u4f7f\u7528 nodejs \u7684 fetch \u8bbf\u95ee\u817e\u8baf\u670d\u52a1\u5668\u4e0a\u7684\u670d\u52a1\u65f6\uff0c\u8fd9\u4e2a\u670d\u52a1\u4e4b\u95f4\u7684\u6570\u636e\u683c\u5f0f\u662f\u6587\u4ef6\u6d41\u6570\u636e\u5c31\u4f1a\u51fa\u73b0\u5f88\u4e25\u91cd\u7684\u4e22\u5305\u95ee\u9898\uff0c\u8fd9\u662f\u4e3a\u4ec0\u4e48 \u6709 V \u53cb\u77e5\u9053\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hahahalololo", 
        "name": "hahahalololo", 
        "avatar": "https://cdn.v2ex.com/avatar/620d/6bb4/456916_large.png?m=1700040149"
      }, 
      "url": "https://www.v2ex.com/t/1006225", 
      "date_modified": "2024-01-05T09:05:45+00:00", 
      "content_html": "<pre><code>url='xxxxxxxxxxxxxxx'\n\nyield scrapy.Request(\n    url=url,\n    cookies=self.cookies,\n    headers=self.headers,\n    meta={\n    'download_timeout': 60  \n    },\n    callback=self.save,\n)\n\nrs = requests.get(url, headers=self.headers, cookies=self.cookies, timeout=60)\n</code></pre>\n<p>\u8fd9\u53ef\u80fd\u662f\u4ec0\u4e48\u539f\u56e0\u9020\u6210\u7684\u5462\uff1f\u627e\u4e86\u4e00\u5708\u4e5f\u6ca1\u53d1\u73b0\u539f\u56e0\u3002COOKIES_ENABLED \u8bbe\u7f6e\u6210 True \u7684</p>\n", 
      "date_published": "2024-01-05T08:47:11+00:00", 
      "title": "\u6c42\u6559\u540c\u6837\u7684 url \u53c2\u6570\u5934\u90e8 cookies\uff0c scrapy \u8bf7\u6c42\u8fd4\u56de\u9a8c\u8bc1\u7801\uff0c requests \u76f4\u63a5\u8bf7\u6c42\u5c31\u6b63\u5e38\uff0c\u4ee3\u7801\u5982\u4e0b", 
      "id": "https://www.v2ex.com/t/1006225"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chackchackGO", 
        "name": "chackchackGO", 
        "avatar": "https://cdn.v2ex.com/avatar/1bfa/a60b/455835_large.png?m=1665830450"
      }, 
      "url": "https://www.v2ex.com/t/1005324", 
      "date_modified": "2024-01-05T01:08:49+00:00", 
      "content_html": "<p>\u4f8b\u5982</p>\n<pre><code>POST /jars/upload HTTP/1.1\nHost: localhost:8081\nAccept-Encoding: gzip, deflate\nAccept: */*\nAccept-Language: en\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36\nConnection: close\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryoZ8meKnrrso89R6Y\nContent-Length: 187\n\n------WebKitFormBoundaryoZ8meKnrrso89R6Y\nContent-Disposition: form-data; name=\"jarfile\"; filename=\"../../../../../../tmp/success\"\n\nsuccess\n------WebKitFormBoundaryoZ8meKnrrso89R6Y--\n</code></pre>\n<p>\u8fd9\u6837\u4e00\u6bb5 HTTP \u5305\uff0c\u65e0\u8bba\u7528 postman \uff0cpostwoman, curl \u4e4b\u7c7b\u7684\u5de5\u5177\u90fd\u9700\u8981\u81ea\u884c\u4fee\u6539\u8fd9\u4e2a\u5b57\u7b26\u4e32\u4ee5\u7b26\u5408\u4ed6\u4eec\u7684\u4f7f\u7528\u683c\u5f0f\uff0c \u6709\u4e9b\u4e0d\u65b9\u4fbf\u3002</p>\n", 
      "date_published": "2024-01-02T17:19:45+00:00", 
      "title": "\u4ec0\u4e48\u5de5\u5177\u9002\u5408\u65b9\u4fbf\u7684\u53d1\u9001\u539f\u59cb HTTP \u5305\uff1f", 
      "id": "https://www.v2ex.com/t/1005324"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/HeloV", 
        "name": "HeloV", 
        "avatar": "https://cdn.v2ex.com/avatar/abc7/9c7e/583341_large.png?m=1748191174"
      }, 
      "url": "https://www.v2ex.com/t/997146", 
      "title": "\u51b7\u77e5\u8bc6\uff1a.ml \u57df\u540d\u53ef\u4ee5\u6ce8\u518c\u4e86", 
      "id": "https://www.v2ex.com/t/997146", 
      "date_published": "2023-12-02T12:15:27+00:00", 
      "content_html": "<p>\u6ce8\u518c\u5730\u5740\u5728 <a href=\"http://point.ml\" rel=\"nofollow\">point.ml</a> \uff0c\u652f\u4ed8\u65b9\u5f0f\u9009 master card \u4e4b\u540e\uff0c\u53ef\u4ee5\u7528\u94f6\u884c\u5361\u652f\u4ed8\uff08 visa \u5361\u662f\u53ef\u4ee5\u7684\uff09\uff0c9 \u6b27\u4e00\u5e74\u3002</p>\n<p><strong>\u5f88\u591a\u56db\u4e2a\u5b57\u6bcd\u7684\u57df\u540d\u6ca1\u6709\u6ce8\u518c</strong></p>\n<p>\u73b0\u5728\u53ef\u4ee5\u627e\u56de\u4e4b\u524d .ml \u7684\u514d\u8d39\u57df\u540d\u4e86\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/GopherDaily", 
        "name": "GopherDaily", 
        "avatar": "https://cdn.v2ex.com/gravatar/89208b8c3493547fe544b2d5142dc131?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/995871", 
      "title": "TLS \u56de\u987e", 
      "id": "https://www.v2ex.com/t/995871", 
      "date_published": "2023-11-28T03:10:29+00:00", 
      "content_html": "<p>Secure Sockets Layer(SSL) \u662f\u7f51\u666f(Netscape) \u5728 1995 \u5e74\u63d0\u51fa\u7684\u4e00\u79cd\u5b89\u5168\u52a0\u5bc6\u534f\u8bae, \u5305\u62ec 1.0, 2.0 \u548c 3.0 \u4e09\u4e2a\u7248\u672c.</p>\n<p>Transport Layer Security(TLS) \u662f\u7531 IETF \u4e3b\u5bfc\u7684, \u5bf9 SSL \u7684\u66f4\u65b0.\nTLS \u7684\u521d\u59cb\u7248\u672c\u548c SSL 3.0 \u57fa\u672c\u76f8\u540c.\nTLS 1.2/1.3 \u662f\u5f53\u524d\u7684\u4e3b\u6d41\u7248\u672c, 1.3 \u76f8\u5bf9 1.2 \u5728\u5b89\u5168\u548c\u6027\u80fd\u4e0a\u90fd\u6709\u660e\u663e\u7684\u63d0\u9ad8.</p>\n<h2>Encrypt, Digest and Sign</h2>\n<p>\u6570\u636e\u7ecf\u8fc7\u52a0\u5bc6\u540e(Encrypt), \u4ec5\u62e5\u6709\u5bf9\u5e94\u5bc6\u94a5\u7684\u4eba, \u7ecf\u8fc7\u89e3\u5bc6\u540e\u53ef\u4ee5\u770b\u5230\u6570\u636e\u7684\u5185\u5bb9.\n\u5bc6\u94a5\u7684\u5f62\u5f0f\u5206\u4e3a\u5bf9\u79f0\u5bc6\u94a5\u548c\u975e\u5bf9\u79f0\u5bc6\u94a5, \u975e\u5bf9\u79f0\u5bc6\u94a5\u4e0b, \u5e38\u7531\u7b2c\u4e09\u65b9\u7528\u516c\u94a5\u5bf9\u6570\u636e\u8fdb\u884c\u52a0\u5bc6, \u968f\u540e\u4ec5\u79c1\u94a5\u7684\u6301\u6709\u8005\u53ef\u4ee5\u89e3\u5bc6\u5bf9\u5e94\u6570\u636e.</p>\n<p>\u6458\u8981(Digest)\u662f\u6307\u5c06\u4e0d\u5b9a\u957f\u7684\u6570\u636e\u6620\u5c04\u5230\u56fa\u5b9a\u957f\u5ea6, \u5982 MD5 \u5c31\u4f1a\u4ea7\u751f 128 \u6bd4\u7279\u7684\u5b57\u7b26\u4e32.\n\u6570\u636e\u53d1\u5e03\u8005\u4e3b\u52a8\u516c\u5e03\u6458\u8981\u540e, \u6570\u636e\u4f7f\u7528\u8005\u53ef\u4ee5\u6309\u76f8\u540c\u89c4\u5219\u8ba1\u7b97\u6570\u636e\u7684\u6458\u8981, \u901a\u8fc7\u6bd4\u5bf9, \u6821\u9a8c\u6570\u636e\u7684\u5b8c\u6574\u6027, \u907f\u514d\u4f7f\u7528\u7684\u6570\u636e\u88ab\u7be1\u6539.</p>\n<p>\u7b7e\u540d(Sign)\u662f\u6307\u4f7f\u7528\u975e\u5bf9\u79f0\u5bc6\u94a5\u4e2d\u7684\u79c1\u94a5\u8ba1\u7b97\u6570\u636e\u5bf9\u5e94\u7b7e\u540d, \u4f7f\u7528\u8005\u53ef\u4ee5\u4f7f\u7528\u5bf9\u5e94\u516c\u94a5\u9a8c\u8bc1\u6570\u636e\u548c\u7b7e\u540d\u7684\u5173\u8054\u6027,\n\u8fdb\u800c\u786e\u4fdd\u6570\u636e\u662f\u7531\u516c\u94a5\u5bf9\u5e94\u65b9\u53d1\u5e03\u6216\u8ba4\u8bc1\u7684.</p>\n<h2>TLS 1.2</h2>\n<p>\u57fa\u4e8e RSA \u4ea4\u6362\u5bc6\u94a5\u7684 TLS \u63e1\u624b\u6d41\u7a0b\u5982\u4e0b, \u5e38\u89c1\u4e8e TLS 1.2:</p>\n<ul>\n<li>\u5ba2\u6237\u7aef\u8fde\u63a5\u5230\u670d\u52a1\u7aef\u7684\u7aef\u53e3, \u5e76\u53d1\u9001 ClientHello, \u4e3b\u8981\u5305\u62ec: \u652f\u6301\u7684 TLS \u7248\u672c, \u652f\u6301\u7684\u52a0\u5bc6\u5957\u4ef6(cipher suite) \u548c 32 \u4e2a\u5b57\u8282\u7684\u5ba2\u6237\u7aef\u968f\u673a\u6570.</li>\n<li>\u670d\u52a1\u6839\u636e\u6536\u5230\u7684\u4fe1\u606f, \u8fd4\u56de ServerHello, \u4e3b\u8981\u5305\u62ec: \u9009\u62e9\u7684 TLS \u7248\u672c, \u9009\u62e9\u7684\u52a0\u5bc6\u5957\u4ef6\u548c 32 \u4e2a\u5b57\u8282\u7684\u670d\u52a1\u7aef\u968f\u673a\u6570; \u4ee5\u53ca\u670d\u52a1\u7aef\u7684 TLS \u8bc1\u4e66.</li>\n<li>\u5ba2\u6237\u7aef\u57fa\u4e8e\u9884\u5148\u914d\u7f6e\u7684\u53ef\u4fe1 CA, \u6821\u9a8c TLS \u8bc1\u4e66\u4e2d\u7684\u4e3b\u673a\u540d\u548c\u9884\u671f\u76f8\u7b26.</li>\n<li>\u5ba2\u6237\u7aef\u751f\u6210 pre-master secret, \u7528\u6536\u5230\u8bc1\u4e66\u4e2d\u7684\u516c\u94a5\u52a0\u5bc6\u540e\u53d1\u9001\u7ed9\u670d\u52a1\u7aef, \u5373 ClientKeyExchange.</li>\n<li>\u670d\u52a1\u7aef\u7528\u79c1\u94a5\u89e3\u5bc6 ClientKeyExchange, \u83b7\u7684 pre-master secret, \u914d\u5408\u524d\u6587\u7684\u5ba2\u6237\u7aef\u968f\u673a\u6570, \u670d\u52a1\u7aef\u968f\u673a\u6570\u751f\u6210\u4f1a\u8bdd\u5bc6\u94a5.</li>\n<li>\u5ba2\u6237\u7aef\u4f7f\u7528 pre-master secret, \u5ba2\u6237\u7aef\u968f\u673a\u6570, \u670d\u52a1\u7aef\u968f\u673a\u6570\u751f\u6210\u4f1a\u8bdd\u5bc6\u94a5.</li>\n<li>\u670d\u52a1\u7aef\u7528\u4f1a\u8bdd\u5bc6\u94a5\u52a0\u5bc6\u672c\u6b21\u63e1\u624b\u7684\u6570\u636e, \u53d1\u9001\u7ed9\u5ba2\u6237\u7aef\u4f9b\u5176\u786e\u8ba4\u4f1a\u8bdd\u5bc6\u94a5.</li>\n<li>\u5ba2\u6237\u7aef\u7528\u4f1a\u8bdd\u5bc6\u94a5\u52a0\u5bc6\u672c\u6b21\u6211\u6240\u7684\u6570\u636e, \u53d1\u9001\u7ed9\u670d\u52a1\u7aef\u4f9b\u5176\u786e\u8ba4\u4f1a\u8bdd\u5bc6\u94a5.</li>\n</ul>\n<p>\u5ba2\u6237\u7aef\u786e\u8ba4\u670d\u52a1\u7aef\u8eab\u4efd\u4f9d\u8d56\u4e8e Certificate Authority (CA), \u5373\u8bc1\u4e66\u9881\u53d1\u673a\u6784.\n\u5176\u5de5\u4f5c\u673a\u5236\u53ef\u4ee5\u7b80\u5355\u7684\u7406\u89e3\u4e3a:</p>\n<ul>\n<li>\u5b58\u5728\u4e00\u4e9b\u603b\u6240\u5468\u77e5\u7684\u8bc1\u4e66\u9881\u53d1\u673a\u6784, \u5982 DigiCert, Let's Encrypt.</li>\n<li>\u670d\u52a1\u7aef\u63d0\u4f9b\u4e3b\u673a\u540d\u5411\u8fd9\u4e9b CA \u7533\u8bf7\u516c\u79c1\u94a5\u8bc1\u4e66, \u516c\u94a5\u8bc1\u4e66\u4e2d\u542b\u6709\u670d\u52a1\u7aef\u5bf9\u5e94\u4e3b\u673a\u540d, \u5e76\u7531 CA \u7684\u79c1\u94a5\u7b7e\u540d.</li>\n<li>\u64cd\u4f5c\u7cfb\u7edf\u9884\u5148\u5185\u7f6e\u4e86\u8fd9\u4e9b CA \u7684\u516c\u94a5\u8bc1\u4e66, \u5ba2\u6237\u7aef\u5728\u548c\u670d\u52a1\u7aef\u5efa\u7acb\u94fe\u63a5\u65f6\u4f7f\u7528\u9884\u7f6e\u7684 CA \u7684\u516c\u94a5\u6765\u9a8c\u8bc1\u670d\u52a1\u7aef\u7684\u8bc1\u4e66\u662f\u53ef\u4fe1.</li>\n</ul>\n<p>\u57fa\u4e8e RSA \u7684\u5bc6\u94a5\u4ea4\u6362\u4e2d, \u7531\u5ba2\u6237\u7aef\u751f\u6210 pre-master secret \u540e, \u4f7f\u7528\u670d\u52a1\u7aef\u7684\u516c\u94a5\u52a0\u5bc6\u540e\u4f20\u8f93\u7ed9\u670d\u52a1\u7aef.\n\u7406\u8bba\u4e0a, \u4ec5\u670d\u52a1\u7aef\u4f7f\u7528\u4e25\u5bc6\u4fdd\u62a4\u7684\u79c1\u94a5\u53ef\u4ee5\u89e3\u5bc6\u8fd9\u90e8\u5206\u6570\u636e\u83b7\u53d6\u5230 pre-master secret.\n\u968f\u540e, \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef\u7528 pre-master secret, \u5ba2\u6237\u7aef\u968f\u673a\u6570\u548c\u670d\u52a1\u7aef\u968f\u673a\u6570\u751f\u6210\u76f8\u540c\u7684\u5bc6\u94a5, \u7528\u4e8e\u540e\u7eed\u6570\u636e\u7684\u5bf9\u79f0\u52a0\u89e3\u5bc6.</p>\n<p>TLS 1.3 \u76f8\u8f83\u4e8e TLS 1.2 \u5728\u5b89\u5168\u6027\u548c\u63e1\u624b\u6548\u7387\u4e0a\u90fd\u8981\u8f83\u5927\u7684\u63d0\u9ad8, \u5177\u4f53\u53ef\u4ee5\u53c2\u8003 <a href=\"https://www.cloudflare.com/zh-cn/learning/ssl/why-use-tls-1.3/\" rel=\"nofollow\">\u4e3a\u4ec0\u4e48\u8981\u4f7f\u7528 TLS 1.3 \uff1f</a>.</p>\n<h2>SNI</h2>\n<p>Server Name Indication (SNI) \u662f TLS \u7684\u4e00\u4e2a\u6269\u5c55, \u5141\u8bb8\u5ba2\u6237\u7aef\u5728 ClientHello \u4e2d\u6307\u5b9a\u60f3\u8981\u8fde\u63a5\u7684\u4e3b\u673a\u540d.\nSNI \u4e3b\u8981\u7528\u4e8e\u540c\u4e00 IP \u7684\u670d\u52a1\u5668\u627f\u8f7d\u591a\u4e2a\u4e3b\u673a\u540d\u7684\u573a\u666f.</p>\n<p>\u8bf8\u5982 Istio \u8fd9\u6837\u7684 Mesh \u65b9\u6848, \u4f1a\u5927\u91cf\u4f7f\u7528 SNI \u6765\u505a\u8def\u7531.</p>\n<p>Source: <a href=\"https://github.com/j2gg0s/j2gg0s/blob/main/_posts/2023-11-27-TLS%20%E5%9B%9E%E9%A1%BE.md\" rel=\"nofollow\">https://github.com/j2gg0s/j2gg0s/blob/main/_posts/2023-11-27-TLS%20%E5%9B%9E%E9%A1%BE.md</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/MrdotX", 
        "name": "MrdotX", 
        "avatar": "https://cdn.v2ex.com/avatar/4b06/8e4a/269951_large.png?m=1516270917"
      }, 
      "url": "https://www.v2ex.com/t/990658", 
      "date_modified": "2023-11-10T09:43:30+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u901a\u8fc7\u7528\u81ea\u5df1\u7684\u8d26\u53f7\uff0c\u8bf7\u6c42\u67d0\u4e00\u822a\u73ed\u7684\u4f59\u7968\u540e\u628a http \u8bf7\u6c42\u5168\u90e8\u514b\u9686\uff0c\u7136\u540e\u7528\u811a\u672c\u6bcf\u9694\u51e0\u79d2\u53d1\u9001\u8bf7\u6c42\u76d1\u63a7\u4f59\u7968\u60c5\u51b5\uff0c\u4f46\uff0c\u53d1\u73b0\u8be5\u8bf7\u6c42\u6bcf\u9694\u534a\u5c0f\u65f6\u5c31\u5931\u6548\u4e86\uff0c\u7136\u540e\u7528\u81ea\u5df1\u7684\u624b\u673a\u91cd\u65b0\u53d1\u8bf7\u6c42\u83b7\u53d6\u5230\u65b0\u7684 Cookie \u585e\u5230\u811a\u672c\u7684\u8bf7\u6c42\u4e2d\uff0c\u53c8\u53ef\u4ee5\u518d\u6b21\u8fdb\u884c\u5237\u7968\u76d1\u63a7\u3002</p>\n<p>\u6240\u4ee5\uff0c\u60f3\u8bf7\u95ee\u4e0b\u5728\u5ea7\u7684\u5de8\u4f6c\uff0c\u76ee\u524d\u7684\u534a\u5c0f\u65f6\u662f Cookie \u5f15\u8d77\u7684\u5417\uff1f \u6211\u4e0d\u592a\u61c2 Cookie \u7684\u89c4\u5219\uff0c\u6709\u6ca1\u6709\u65b9\u6cd5\u53ef\u4ee5\u5ef6\u65f6\u8be5\u8bf7\u6c42\uff1f \u80fd\u8d85\u8d8a\u534a\u5c0f\u65f6\u7684\u9650\u5236\uff1f</p>\n", 
      "date_published": "2023-11-10T05:49:18+00:00", 
      "title": "\u60f3\u76d1\u6d4b\u67d0\u822a\u7a7a\u4f59\u7968", 
      "id": "https://www.v2ex.com/t/990658"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zkwang", 
        "name": "zkwang", 
        "avatar": "https://cdn.v2ex.com/gravatar/26bdeaa1c2bcaf3bc53000dee4913090?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/982662", 
      "date_modified": "2023-10-17T04:13:14+00:00", 
      "content_html": "<p>\u6709\u4e00\u4e2a\u53e4\u8001\u7684 http-proxy \u8f6f\u4ef6\uff0c\u4e0d\u652f\u6301 connect \u65b9\u6cd5\uff0c\u6240\u4ee5\u53ea\u80fd\u8bbf\u95ee http \u7f51\u7ad9\uff0c\u4e0d\u80fd\u8bbf\u95ee https \u7f51\u7ad9\u3002\n\u6709\u6ca1\u6709\u4ec0\u4e48\u529e\u6cd5\u8ba9\u5b83\u80fd\u8bbf\u95ee https \u7684\u7f51\u7ad9\uff1f</p>\n", 
      "date_published": "2023-10-17T02:30:10+00:00", 
      "title": "http \u4ee3\u7406\uff0c\u5982\u679c\u4e0d\u652f\u6301 connect \u65b9\u6cd5\uff0c\u6709\u6ca1\u6709\u529e\u6cd5\u8bbf\u95ee https \u7684\u7f51\u7ad9\uff1f", 
      "id": "https://www.v2ex.com/t/982662"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/loveaeen", 
        "name": "loveaeen", 
        "avatar": "https://cdn.v2ex.com/gravatar/8c933b57c6300b49cd0d95808e9465fc?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/981062", 
      "date_modified": "2023-10-11T09:58:13+00:00", 
      "content_html": "<h1>\u9879\u76ee\u73af\u5883</h1>\n<p>\u9879\u76ee\u8fd0\u884c\u73af\u5883 </p>\n<ul>\n<li>windows server/ \u672c\u5730 mac</li>\n<li>tomcat 8.5.83</li>\n<li>jdk 1.8.0.352</li>\n<li>\u56fd\u5bc6\u8bc1\u4e66 gmssl \u7b7e\u53d1\u7684\u6d4b\u8bd5\u8bc1\u4e66</li>\n</ul>\n<p>\u4eca\u5929\u91c7\u7528 gmssl \u7b7e\u53d1\u4e86\u4e00\u4e2a\u6d4b\u8bd5\u8bc1\u4e66 sm2/rsa \u53cc https \u8bc1\u4e66\u3002\n\u7136\u540e\u4e3a tomcat8 \u4e0e jdk1.8 \u5206\u522b\u589e\u52a0\u4e86\u56fd\u5bc6\u89e3\u6790\u7684 jar \u5305\u3002</p>\n<h1>\u51fa\u73b0\u95ee\u9898</h1>\n<p>\u9879\u76ee\u5728 http \u4e0b\u6b63\u5e38\u8fd0\u884c\uff0c\u4f46\u662f https \u65f6\u51fa\u73b0\u8bbf\u95ee\u9759\u6001\u6587\u4ef6\u65f6\u5374\u51fa\u73b0\u4e86 500 \u9519\u8bef\uff0ctomcat \u62a5\u9519 <code>SSLPeerUnverifiedException: peer not authenticated</code>\u3002</p>\n<p>\u8be1\u5f02\u7684\u662f\u5374\u6709\u4e00\u5c0f\u90e8\u5206\u9759\u6001\u6587\u4ef6\u8bbf\u95ee\u6b63\u5e38\uff08\u5df2\u5173\u95ed\u6d4f\u89c8\u5668\u7f13\u5b58\uff09</p>\n<h1>\u6c42\u52a9</h1>\n<p>\u6709\u54ea\u4f4d\u5927\u5144\u5f1f\u6709\u505a\u8fc7\u8fd9\u65b9\u9762\u7684\u5de5\u4f5c\u5417\uff0c\u6c42\u52a9\uff01</p>\n", 
      "date_published": "2023-10-11T09:56:29+00:00", 
      "title": "\u5173\u4e8e tomcat \u914d\u7f6e\u56fd\u5bc6 https \u540e\u51fa\u73b0\u7684\u95ee\u9898\u6c42\u52a9", 
      "id": "https://www.v2ex.com/t/981062"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/bfjm", 
        "name": "bfjm", 
        "avatar": "https://cdn.v2ex.com/avatar/6967/3b59/414737_large.png?m=1664094503"
      }, 
      "url": "https://www.v2ex.com/t/980807", 
      "date_modified": "2023-10-11T00:35:47+00:00", 
      "content_html": "\u5ba2\u6237\u7aef\u7684\u7ed1\u5b9a\u4e86\u7aef\u53e3 5000 \uff0c\u5411\u670d\u52a1\u7aef\u7684\u7aef\u53e3 4433 \u53d1\u9001\u4e86\u6d88\u606f\uff0c\u670d\u52a1\u7aef\u7ed1\u5b9a\u5e76\u5411\u5ba2\u6237\u7aef connect \uff0c\u6536\u53d1\u6d88\u606f\u6b63\u5e38\uff0c\u4f46\u662f\u5ba2\u6237\u7aef\u5173\u95ed\u539f\u6765\u7684 fd \uff0c\u91cd\u65b0\u7ed1\u5b9a\u4e86\u65b0\u7684\u7aef\u53e3 6000 \uff0c\u7ed9\u670d\u52a1\u7aef\u53d1\u9001\u6d88\u606f\uff0c\u670d\u52a1\u7aef\u8fd8\u80fd\u4ece\u539f\u6765\u7684 fd \u4e0a\u8bfb\u53d6\u6d88\u606f\uff0c \u4e3a\u5565\u4e0d\u662f\u5f53\u6210\u4e00\u4e2a\u65b0\u7684\u5ba2\u6237\u7aef\u5462\uff1f \u4ece\u6293\u5305\u6765\u770b\uff0c\u5ba2\u6237\u7aef\u53d1\u9001\u7684 udp \u5305\u5df2\u7ecf\u662f\u91cd\u65b0\u7ed1\u5b9a\u7684 \u7aef\u53e3 6000", 
      "date_published": "2023-10-10T15:55:07+00:00", 
      "title": "\u4e00\u4e2a udp \u7684\u7591\u95ee", 
      "id": "https://www.v2ex.com/t/980807"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ccclo", 
        "name": "ccclo", 
        "avatar": "https://cdn.v2ex.com/gravatar/7fdf5c8b0558e27383d934f93ff66869?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/978448", 
      "date_modified": "2023-10-01T07:00:57+00:00", 
      "content_html": "tradingview \u4e0a\u9762\u7b56\u7565\u7684\u4e70\u5165 \u5356\u51fa\u4fe1\u53f7\u600e\u6837\u53d1\u9001\u7ed9\u670d\u52a1\u5668\uff0c\u73b0\u5728 webhook URL \u73b0\u5728\u6536\u8d39  \u6709\u4ec0\u4e48\u529e\u6cd5\u53ef\u4ee5\u89e3\u51b3\u7684", 
      "date_published": "2023-10-01T06:57:55+00:00", 
      "title": "tradingview \u4e0a\u9762\u7b56\u7565\u7684\u4e70\u5165 \u5356\u51fa\u4fe1\u53f7\u600e\u6837\u53d1\u9001\u7ed9\u670d\u52a1\u5668\uff0c\u73b0\u5728 webhook URL \u73b0\u5728\u6536\u8d39 \u6709\u4ec0\u4e48\u529e\u6cd5\u53ef\u4ee5\u89e3\u51b3\u7684", 
      "id": "https://www.v2ex.com/t/978448"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/n2l", 
        "name": "n2l", 
        "avatar": "https://cdn.v2ex.com/avatar/fc64/6dae/253420_large.png?m=1773899890"
      }, 
      "url": "https://www.v2ex.com/t/978172", 
      "date_modified": "2023-09-29T14:00:36+00:00", 
      "content_html": "<p>\u5728\u9009\u62e9\u91cd\u4f20\u534f\u8bae\u4e2d\uff0c\u5982\u679c\u53d1\u9001\u63a5\u6536\u7a97\u53e3\u7684\u5c3a\u5bf8\u90fd\u662f 4 \uff0c\u53d1\u9001\u65b9\u53d1\u9001\u7684 0-3 \u53f7\u6570\u636e\u90fd\u88ab\u63a5\u6536\u65b9\u6b63\u786e\u63a5\u53d7\uff0c\u63a5\u6536\u65b9\u4e5f\u53d1\u9001\u4e86 0-3 \u53f7\u786e\u8ba4\u5206\u7ec4\uff0c\u4f46\u662f 2 \u53f7\u786e\u8ba4\u5206\u7ec4\u5728\u4f20\u8f93\u8fc7\u7a0b\u4e2d\u4e22\u5931\u4e86\uff0c\u53ea\u6709 0 \uff0c1 \uff0c3 \u53f7\u786e\u8ba4\u5206\u7ec4\u6b63\u786e\u88ab\u53d1\u9001\u65b9\u6536\u5230\uff0c\u90a3\u540e\u7eed\u7684\u8fc7\u7a0b\u662f\u600e\u6837\u7684\uff1f\uff08\u4e0d\u8981 chatgpt \u7684\u7b54\u6848\uff0c\u56e0\u4e3a\u6211\u8bd5\u8fc7\uff0c\u5f15\u7533\u7684\u7591\u95ee\u6765\u81ea\u4e8e <a href=\"https://b23.tv/fRUMaRO\" rel=\"nofollow\">https://b23.tv/fRUMaRO</a> \u7684 6 \u5206\u949f\u5de6\u53f3\uff0c\u89c6\u9891\u91cc\u8bf4\u7684\u662f 2 \u53f7\u6570\u636e\u5206\u7ec4\u4e22\u5931\uff0c\u6211\u7684\u5f15\u7533\u95ee\u9898\u80cc\u666f\u662f 2 \u53f7\u786e\u8ba4\u5206\u7ec4\u4e22\u5931\uff09</p>\n", 
      "date_published": "2023-09-29T09:59:35+00:00", 
      "title": "\u9009\u62e9\u91cd\u4f20\u534f\u8bae\u7591\u95ee", 
      "id": "https://www.v2ex.com/t/978172"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/isbase", 
        "name": "isbase", 
        "avatar": "https://cdn.v2ex.com/avatar/d1f2/b9b4/64727_large.png?m=1773251678"
      }, 
      "url": "https://www.v2ex.com/t/978154", 
      "date_modified": "2023-09-29T07:29:17+00:00", 
      "content_html": "<p>\u7528\u6cd5\u7c7b\u4f3c <code>curl <a href=\"https://example.com\" rel=\"nofollow\">https://example.com</a></code></p>\n<p>\u5b83\u53ef\u4ee5\u8f93\u51fa\u8bf7\u6c42\u5230\u54cd\u5e94\u5404\u9636\u6bb5\u7684\u8017\u65f6\uff0c\u5305\u62ec DNS \u89e3\u6790\u3001TLS \u63e1\u624b\u3001\u7b49\u4fe1\u606f</p>\n", 
      "date_published": "2023-09-29T07:23:37+00:00", 
      "title": "\u6709\u4e2a\u7528\u4e8e\u6d4b\u8bd5 HTTPS \u94fe\u63a5\u5404\u9636\u6bb5\u8017\u65f6\u7684\u547d\u4ee4\u884c\u5de5\u5177\u60f3\u4e0d\u8d77\u6765\u53eb\u5565\u4e86", 
      "id": "https://www.v2ex.com/t/978154"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/qweruiop", 
        "name": "qweruiop", 
        "avatar": "https://cdn.v2ex.com/avatar/d6c7/d64e/634178_large.png?m=1704960981"
      }, 
      "url": "https://www.v2ex.com/t/978079", 
      "date_modified": "2023-09-29T06:46:34+00:00", 
      "content_html": "<p>\u4e0d\u77e5\u4e0d\u89c9 postman \u91cc\u9762\u5df2\u7ecf\u79ef\u7d2f\u4e86 2000 \u591a\u4e2a requests \u4e86\u3002\u3002\u3002\u73b0\u5728\u5728 m1 \u4e0b\u9762\u5de8\u5361\u3002\u3002\u3002\u611f\u89c9 electron \u7684\u9505\u3002\u3002\u3002</p>\n<p>\u56e0\u4e3a\u505a\u4f01\u4e1a\u5f00\u53d1\uff0c\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u7528\u539f\u751f\u5199\u7684\u3002\u3002\u3002\u8981\u6c42\uff1a</p>\n<p>1 \uff0c\u6700\u597d\u662f\u5f00\u6e90\u7684\u3002\n2 \uff0c\u4e0d\u8981\u56fd\u4eba\u5f00\u53d1\u7684\u3002\u3002\u3002\uff08\u516c\u53f8\u89c4\u5b9a\uff09</p>\n<p>\u4e0d\u77e5\u9053\u5404\u4f4d\u5c0f\u4f19\u4f34\u90fd\u5728\u7528\u5565\u3002\u3002\u3002</p>\n", 
      "date_published": "2023-09-28T16:25:09+00:00", 
      "title": "\u6c42\u5404\u4f4d\u9ad8\u624b\u63a8\u8350\u4e00\u4e2a postman \u7684 mac \u4e0b\u7684\u66ff\u4ee3\u3002\u3002", 
      "id": "https://www.v2ex.com/t/978079"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/KingFong", 
        "name": "KingFong", 
        "avatar": "https://cdn.v2ex.com/avatar/436f/c6a8/113024_large.png?m=1763548785"
      }, 
      "url": "https://www.v2ex.com/t/976340", 
      "date_modified": "2023-09-22T14:17:08+00:00", 
      "content_html": "<p>\u8feb\u4e8e\u516c\u53f8\u4e1a\u52a1\u6709\u51e0\u5341\u53f0\u8fd0\u884c\u540c\u6837\u7a0b\u5e8f\u7684\u670d\u52a1\u5668\u5728\u7ba1\u7406\uff0c\u8fd9\u4e9b\u670d\u52a1\u5668\u4e0a\u652f\u6301\u901a\u8fc7 http \u63a5\u53e3\u8c03\u7528\u6267\u884c\u4e00\u4e9b\u547d\u4ee4\u3002</p>\n<p>\u60f3\u627e\u4e00\u4e2a\u5f00\u6e90\u7684\u5de5\u5177\u6765\u5b9e\u73b0\u8fd9\u6837\u7684\u7ba1\u7406\uff0c\u53ef\u4ee5\u6dfb\u52a0\u673a\u5668\u7684 IP \uff0c\u53ef\u4ee5\u7f16\u8f91 http \u8bf7\u6c42\u7ec4\uff0c\u7136\u540e\u53d1\u8d77\u4efb\u52a1\u6279\u91cf\u5f80\u8fd9\u4e9b IP \u4e0a\u53d1\u9001 http \u8bf7\u6c42\uff0c\u5e76\u8bb0\u5f55\u7ed3\u679c\u6216\u8005\u91cd\u8bd5\u3002</p>\n<p>\u603b\u611f\u89c9\u5e94\u8be5\u6709\u73b0\u6210\u7684\u8f6e\u5b50\u80fd\u5b9e\u73b0\u3002</p>\n", 
      "date_published": "2023-09-22T14:15:48+00:00", 
      "title": "\u6709\u73b0\u6210\u7684 Http \u8bf7\u6c42\u6279\u91cf\u53d1\u9001\u548c\u7ba1\u7406\u5de5\u5177\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/976340"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/SeduceQAQ", 
        "name": "SeduceQAQ", 
        "avatar": "https://cdn.v2ex.com/avatar/c314/7a5d/604701_large.png?m=1739436837"
      }, 
      "url": "https://www.v2ex.com/t/937369", 
      "title": "\u62a5\u6587\u4e3b\u4f53\u548c\u5b9e\u4f53\u4e3b\u4f53\u7684\u5dee\u5f02", 
      "id": "https://www.v2ex.com/t/937369", 
      "date_published": "2023-05-04T13:36:23+00:00", 
      "content_html": "<p>\u6709\u6ca1\u6709\u5927\u54e5\u80fd\u7528\u901a\u4fd7\u6613\u61c2\u7684\u8bdd\u8be6\u7ec6\u89e3\u91ca\u4e0b\uff0c\u5b9e\u5728\u7406\u89e3\u4e0d\u4e86\uff0c\u6700\u597d\u80fd\u4e3e\u4e2a\u4f8b\u5b50\u8bf4\u660e\u4e00\u4e0b\uff0c\u8c22\u8c22\n<img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/SeduceQAQ/PicGo/master/v2ex/%E6%8A%A5%E6%96%87%E4%B8%BB%E4%BD%93%E5%92%8C%E5%AE%9E%E4%BD%93%E4%B8%BB%E4%BD%93%E7%9A%84%E5%B7%AE%E5%BC%82.png\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ciswind", 
        "name": "ciswind", 
        "avatar": "https://cdn.v2ex.com/gravatar/4aedeea5f127b465540a29e1905525af?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/903671", 
      "title": "\u8bf7\u6559\u4e00\u4e0b\u5404\u4f4d\uff0c http2 \u7684\u5934\u90e8\u6709\u4ec0\u4e48\u7b80\u5355\u7684\u65b9\u6cd5\u53bb\u89e3\u7801\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/903671", 
      "date_published": "2022-12-20T02:46:16+00:00", 
      "content_html": "<p>\u4e0d\u662f\u7528 wireshark \u76f4\u63a5\u6293\u53d6\u7684\u65b9\u6cd5</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/kakatesla", 
        "name": "kakatesla", 
        "avatar": "https://cdn.v2ex.com/avatar/62fa/5365/603008_large.png?m=1670404170"
      }, 
      "url": "https://www.v2ex.com/t/898958", 
      "title": "\u540e 911S5 \u65f6\u4ee3 \u5404\u8def ip \u4ee3\u7406\u7684\u5bf9\u6bd4\u4e0e\u9009\u62e9 (\u4ec5\u4f9b\u53c2\u8003)", 
      "id": "https://www.v2ex.com/t/898958", 
      "date_published": "2022-11-30T01:13:47+00:00", 
      "content_html": "<p>\u2160  Maxproxy\n\u4ee3\u7406\u4ea7\u54c1\u7c7b\u578b\uff1a\u52a8\u6001\u4ee5\u53ca\u56fa\u5b9a\u4f4f\u5b85 IP\n\u4ee3\u7406\u7f51\u7edc\u6c60\uff1a\u6c60\u4e2d\u6709 5000 \u4e07\u4e2a IP\n\u8ba4\u8bc1\u65b9\u5f0f\uff1a\u7528\u6237\u5bc6\u7801\n\u5730\u7406\u4f4d\u7f6e\u5b9a\u4f4d\uff1a\u57ce\u5e02 /\u56fd\u5bb6\uff08\u5168\u7403 200 \u4e2a\u56fd\u5bb6\uff09\n\u4ee3\u7406\u534f\u8bae\uff1aHTTP \uff08 S \uff09+ Socks5\nMaxProxy \u4e5f\u662f\u4e16\u754c\u4e0a\u6700\u5927\u7684\u5546\u4e1a\u4f4f\u5b85\u4ee3\u7406\u670d\u52a1\u4e4b\u4e00\u3002\u8d85\u8fc7 5000 \u4e07\u65b0\u9c9c\u4f4f\u5b85 IP \uff0c\u652f\u6301\u8fd0\u8425\u5546\u548c\u57ce\u5e02\u7ea7\u7075\u6d3b\u5b9a\u4f4d\uff0c\u8f7b\u677e\u96c6\u6210\u7b2c\u4e09\u65b9\u8f6f\u4ef6\u548c\u811a\u672c</p>\n<p>\u4e13\u7528\u4ee3\u7406\u670d\u52a1\u5668\u63d0\u4f9b\u7684\u4e13\u7528 SOCKS5 \u4ee3\u7406\uff0c\u5feb\u901f\u7a33\u5b9a\uff0c\u5b9a\u671f\u66f4\u65b0\u3002 \u5927\u591a\u6570\u4ee3\u7406\u7684\u5ef6\u8fdf\u7ea6\u4e3a 10 \u6beb\u79d2\uff0c\u5339\u914d\u4e13\u7528\u4f4f\u5b85 IP \uff0c\u8fd9\u70b9\u6211\u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u786e\u5b9e\u611f\u89c9\u5230\u5f88\u597d\u7528</p>\n<p>\u7ed3\u5408 SOCKS5 \u4ee3\u7406\u7684\u9ad8\u533f\u540d\u6027\uff0c\u4fdd\u62a4\u7528\u6237\u9690\u79c1\u548c\u5b89\u5168\uff0c\u8f7b\u677e\u5b9e\u73b0\u56fd\u9645\u7f51\u901f\u52a0\u901f\u3002</p>\n<p>\u5ba2\u670d\u65b9\u9762\uff0c\u652f\u6301\u65e5\u4ed8\u3001\u6708\u4ed8\uff0cMaxProxy \u7684\u4e13\u4e1a\u56e2\u961f\u63d0\u4f9b\u53ca\u65f6\u7684\u6280\u672f\u652f\u6301\uff0c\u8054\u7cfb\u5f88\u65b9\u4fbf \u652f\u6301\u591a\u79cd\u8054\u7cfb\u65b9\u5f0f\u3002</p>\n<p>MaxProxy \u7684\u4f18\u70b9\uff1a\nIP \u5730\u5740\u7684\u5927\u91cf\u5206\u914d\n\u826f\u597d\u7684\u5e38\u89c1\u95ee\u9898\u89e3\u7b54\u652f\u6301\u9875\u9762\n\u5b89\u5168\u53ef\u9760\n\u5ec9\u4ef7\u4ee3\u7406\n\u6613\u4e8e\u8bbe\u7f6e\nMaxProxy \u7684\u7f3a\u70b9\uff1a\n\u6682\u65f6\u6ca1\u6709\u514d\u8d39\u8bd5\u7528</p>\n<p>\u2161   YourPrivateProxy\n\u4f4f\u5b85 IP \u5de5\u4f5c\u4f5c\u4e3a\u4e13\u7528\u4ee3\u7406\n\u4ee3\u7406\u4ea7\u54c1\u7c7b\u578b\uff1a\u9759\u6001\u4f4f\u5b85 IP\n\u9a8c\u8bc1\u65b9\u5f0f\uff1a\u7528\u6237\u5bc6\u7801+ IP \u9a8c\u8bc1\n\u5730\u7406\u4f4d\u7f6e\u5b9a\u4f4d\uff1a\u5f15\u7528\n\u4ee3\u7406\u534f\u8bae\uff1aHTTP \uff08 S \uff09\nYourPrivateProxy \u662f\u5e02\u573a\u4e0a\u9876\u7ea7\u7684\u4f4f\u5b85\u4ee3\u7406\u63d0\u4f9b\u5546\u4e4b\u4e00\u3002\u4f7f\u7528 YourPrivateProxy \uff0c\u60a8\u53ef\u4ee5\u533f\u540d\u6d4f\u89c8 Internet \u5e76\u6267\u884c\u8bf8\u5982\u793e\u4ea4\u5e10\u6237\u7ba1\u7406\u548c\u8fd0\u52a8\u978b\u7ad9\u70b9\u4e4b\u7c7b\u7684\u4efb\u52a1\u3002</p>\n<p>\u5b83\u4eec\u53ea\u6709 2 \u4e2a\u7528\u4e8e\u9759\u6001\u4f4f\u5b85 IP \u4ee3\u7406\u7684\u670d\u52a1\u5668\u4f4d\u7f6e\uff0c\u60a8\u53ef\u4ee5\u9009\u62e9\u8981\u4f7f\u7528\u7684\u4e00\u4e2a\u3002\u4ed6\u4eec\u7684\u9759\u6001\u4f4f\u5b85 IP \u4ee3\u7406\u6765\u81ea\u7f8e\u56fd 2 \u4e2a\u57ce\u5e02\uff0c\u5f17\u5409\u5c3c\u4e9a\u5dde\u963f\u4ec0\u672c\u548c\u4f0a\u5229\u8bfa\u4f0a\u5dde\u829d\u52a0\u54e5\u3002</p>\n<p>\u5728\u901f\u5ea6\u65b9\u9762\uff0c\u5b83\u4eec\u4e5f\u975e\u5e38\u5feb\u901f\u3002\u5173\u4e8e\u5b89\u5168\u6027\uff0c\u8bf7\u653e\u5fc3\uff0cYourPrivateProxy \u5f88\u53ef\u9760\u3002</p>\n<p>\u5b83\u4eec\u7684\u4ef7\u683c\u76f8\u5f53\u4fbf\u5b9c\uff0c\u60a8\u53ef\u4ee5\u9009\u62e9\u514d\u8d39\u8bd5\u7528\u3002\u4f46\u662f\uff0c\u4ed6\u4eec\u7684\u9000\u6b3e\u653f\u7b56\u4ec5\u5141\u8bb8\u57fa\u4e8e\u6280\u672f\u800c\u975e\u517c\u5bb9\u6027\u7684\u9000\u6b3e\u3002\u5ef6\u8fdf\u4e5f\u662f YourPrivateProxy \u7684\u6700\u53d7\u6279\u8bc4\u7684\u7279\u6027\u4e4b\u4e00\u3002</p>\n<p>YourPrivateProxy \u7684\u4f18\u70b9\uff1a\n\u4f18\u60e0\u7684\u4ef7\u683c\n\u9009\u62e9\u5730\u70b9\u7684\u80fd\u529b\n\u9ad8\u901f\u4e0a\u7f51\n\u514d\u8d39\u8bd5\u7528\nYourPrivateProxy \u7684\u7f3a\u70b9\uff1a\n\u5ef6\u8fdf\u4e0d\u591f\u597d\n\u9000\u6b3e\u653f\u7b56\u4ec5\u57fa\u4e8e\u6280\u672f\u6027</p>\n<p>\u2162  Proxyrack\n\u9002\u7528 \u4e8e\u7f51\u7edc\u6293\u53d6\u7684\u5c0f\u578b\u9879\u76ee\n\u4ee3\u7406\u8981\u7ea6\u7c7b\u578b\uff1a\u65cb\u8f6c\u4f4f\u5b85 IP\n\u4ee3\u7406\u7f51\u7edc\u6c60\uff1a\u6c60\u4e2d\u6709 480 \u4e07\u4e2a IP\n\u8ba4\u8bc1\u65b9\u5f0f\uff1a\u7528\u6237+\u901a\u884c\u8bc1\n\u5730\u7406\u4f4d\u7f6e\u5b9a\u4f4d\uff1a\u4e0d\u652f\u6301\uff08\u7f8e\u56fd\u6216\u5168\u7403\u6df7\u5408\uff09\n\u4ee3\u7406\u534f\u8bae\uff1aHTTP \uff08 S \uff09+ Socks5\nProxyrack \u662f\u9876\u7ea7\u7684\u4f4f\u5b85\u4ee3\u7406\u63d0\u4f9b\u5546\u4e4b\u4e00\u3002\u4ed6\u4eec\u5728\u793e\u4ea4\u5a92\u4f53\u4ee3\u7406\u63d0\u4f9b\u65b9\u9762\u4e3a\u81ea\u5df1\u521b\u9020\u4e86\u4e00\u4e2a\u5229\u57fa\u5e02\u573a\u3002\u4ed6\u4eec\u6709 Skype \uff0cWhatsapp \uff0cFacebook \uff0cInstagram \uff0cGmail \uff0cPok\u00e9monGo \uff0cTelegram \u548c Viper \u7684\u4ee3\u7406\u3002</p>\n<p>\u9664\u4e86\u63d0\u4f9b\u4f4f\u5b85\u4ee3\u7406\u670d\u52a1\u5916\uff0c\u5b83\u4eec\u8fd8\u63d0\u4f9b\u6570\u636e\u4e2d\u5fc3\u4ee3\u7406\u670d\u52a1\uff0c\u53ef\u4ee5\u8bf4\u662f\u5e02\u573a\u4e0a\u6700\u4fbf\u5b9c\u7684\u670d\u52a1\u4e4b\u4e00\u3002\u5373\u4f7f\u4ed6\u4eec\u4e0d\u63d0\u4f9b\u514d\u8d39\u8bd5\u7528\uff0c\u4e5f\u6709\u9ad8\u8fbe 14 \u5929\u7684\u9000\u6b3e\u653f\u7b56\uff0c\u8fd9\u662f\u4ed6\u4eec\u4fe1\u4efb\u6240\u63d0\u4f9b\u670d\u52a1\u7684\u6807\u5fd7\u3002\u9664\u4ee3\u7406\u670d\u52a1\u5668\u5916\uff0cProxyrack \u8fd8\u8fdb\u5165 VPN \u5e02\u573a\uff0c\u4ed6\u4eec\u62e5\u6709\u81ea\u5df1\u7684\u5e02\u573a\u4efd\u989d\u3002</p>\n<p>\u5728\u7f8e\u56fd\u548c\u52a0\u62ff\u5927\uff0c\u4e9a\u6d32\u548c\u5927\u6d0b\u6d32\u4ee5\u53ca\u6b27\u6d32\uff0c\u4ed6\u4eec\u7684\u4ee3\u7406\u4eba\u8d85\u8fc7 1,250,000 \u3002\u4ed6\u4eec\u83b7\u5f97\u4e86\u826f\u597d\u7684\u5ba2\u6237\u652f\u6301\u670d\u52a1\uff0c\u5e76\u4e14\u5e26\u5bbd\u6570\u91cf\u6ca1\u6709\u9650\u5236\u3002</p>\n<p>Proxyrack \u7684\u4f18\u70b9\uff1a\n\u793e\u4ea4\u5a92\u4f53\u81ea\u52a8\u5316\u7684\u5b8c\u7f8e\u9009\u62e9\n\u826f\u597d\u7684\u5ba2\u6237\u670d\u52a1\n14 \u5929\u9000\u6b3e\u653f\u7b56\n\u65e0\u9650\u5e26\u5bbd\nProxyrack \u7684\u7f3a\u70b9\uff1a\n\u6ca1\u6709\u514d\u8d39\u8bd5\u7528\n\u5730\u7406\u4f4d\u7f6e\u5b9a\u4f4d\u529f\u80fd\u5dee</p>\n<p>\u2163  Proxy-cheap\n\u6ca1\u6709\u6bcf\u6708\u7684\u8d27\u5e01\u627f\u8bfa</p>\n<p>\u4ee3\u7406\u8981\u7ea6\u7c7b\u578b\uff1a\u65cb\u8f6c\u4f4f\u5b85 IP\n\u4ee3\u7406\u7f51\u7edc\u6c60\uff1a\u6c60\u4e2d\u6709 6+\u767e\u4e07\u4e2a IP\n\u8ba4\u8bc1\u65b9\u5f0f\uff1a\u7528\u6237+\u901a\u884c\u8bc1\n\u5730\u7406\u4f4d\u7f6e\u5b9a\u4f4d\uff1a\u56fd\u5bb6\uff08\u652f\u6301 127 \u4e2a\uff09\n\u4ee3\u7406\u534f\u8bae\uff1aHTTP \uff08 S \uff09+ Socks5\nProxy-cheap \u63d0\u4f9b\u4e86\u4e00\u4e9b\u5e02\u573a\u4e0a\u6700\u4fbf\u5b9c\u7684\u4f4f\u5b85\u4ee3\u7406\uff0c\u4e14\u5728\u5168\u7403\u62e5\u6709\u8d85\u8fc7 600 \u4e07\u4e2a\u4f4f\u5b85 IP \uff0c\u652f\u6301\u7ea6 127 \u4e2a\u56fd\u5bb6\u3002Proxy-cheap \u5177\u6709\u4f1a\u8bdd\u4ee3\u7406\uff0c\u8fd9\u4e9b\u4ee3\u7406\u5c06\u5728\u66f4\u6539\u4e4b\u524d\u7684\u4e00\u6bb5\u65f6\u95f4\u5185\u4fdd\u6301\u76f8\u540c\u7684 IP \uff08\u548c\u4f1a\u8bdd\uff09\u3002\u5982\u679c\u60a8\u6b63\u5728\u5bfb\u627e\u53ef\u4ee5\u5728\u6bcf\u6b21\u8bf7\u6c42\u540e\u66f4\u6539 IP \u7684\u9ad8\u65cb\u8f6c\u4ee3\u7406\uff0c\u4e5f\u53ef\u4ee5\u4ece Proxy-cheap \u4e2d\u83b7\u53d6\u5b83\u4eec\u3002</p>\n<p>Proxy-cheap \u58f0\u79f0\u63d0\u4f9b\u4e86\u6700\u4f73\u7684\u6027\u4ef7\u6bd4\u3002\u800c\u4e14\uff0c\u5982\u679c\u60a8\u67e5\u770b\u5b83\u7684\u4ef7\u683c\uff0c\u60a8\u4f1a\u5728\u67d0\u79cd\u7a0b\u5ea6\u4e0a\u540c\u610f\u8fd9\u4e00\u70b9\uff0c\u56e0\u4e3a\u5b83\u7684\u4ee3\u7406\u5f88\u4fbf\u5b9c\uff0c\u4e14\u6ca1\u6709\u6bcf\u6708\u6700\u4f4e\u6d88\u8d39\u627f\u8bfa\u3002\u60a8\u53ef\u4ee5\u8d2d\u4e70\u4f4e\u81f3 1 GB \u7684\u5e26\u5bbd\uff0c\u4e14\u5f53\u60a8\u8d2d\u4e70\u66f4\u591a\u5e26\u5bbd\u65f6\uff0c\u6bcf GB \u7684\u4ef7\u683c\u53ef\u4ee5\u964d\u81f3 3 \u7f8e\u5143\u3002</p>\n<p>Proxy-cheap \u7684\u4f18\u70b9\uff1a\n\u975e\u5e38\u4fbf\u5b9c\n\u826f\u597d\u7684\u5730\u7406\u4f4d\u7f6e\u8986\u76d6\n\u6ca1\u6709\u6700\u4f4e\u6bcf\u6708\u627f\u8bfa\n\u76f8\u5f53\u5927\u7684\u6e38\u6cf3\u6c60\nProxy-cheap \u7684\u7f3a\u70b9\uff1a\n\u4e0d\u63d0\u4f9b\u9000\u6b3e\n\u4e0d\u592a\u597d\u7684\u5ba2\u6237\u652f\u6301\n\u4ec5\u652f\u6301\u56fd\u5bb6 /\u5730\u533a\u7ea7\u5730\u7406\u4f4d\u7f6e\u5b9a\u4f4d</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wencan", 
        "name": "wencan", 
        "avatar": "https://cdn.v2ex.com/avatar/0690/9014/5813_large.png?m=1747997681"
      }, 
      "url": "https://www.v2ex.com/t/896893", 
      "date_modified": "2022-11-21T12:30:58+00:00", 
      "content_html": "HEAD \u8bf7\u6c42\uff0c\u7528\u5f97\u8f83\u5c11\u3002<br />HEAD \u4f3c\u4e4e\u5c31\u662f GET \u53bb\u6389\u54cd\u5e94 Body<br />\u4f46\u6211\u6ca1\u627e\u5230\u5730\u65b9\u8bb2 HEAD \u4f1a\u4e0d\u4f1a\u8ddf GET \u4e00\u6837\uff0c\u6709\u67e5\u8be2\u5b57\u7b26\u4e32\u3002<br />\u5982\u679c\u6709\uff0c\u9ebb\u70e6\u7ed9\u4e2a existed \u7684\u4f8b\u5b50<br /><br />\u5982\u679c\u5176\u5b83\u65b9\u6cd5\uff0c\u4e5f\u4f1a\u6709\u67e5\u8be2\u5b57\u7b26\u4e32\uff0c\u8bf7\u6307\u6559", 
      "date_published": "2022-11-21T12:30:13+00:00", 
      "title": "HTTP \u534f\u8bae HEAD \u8bf7\u6c42\uff0c\u4f1a\u6709\u67e5\u8be2\u5b57\u7b26\u4e32\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/896893"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wsWmsw", 
        "name": "wsWmsw", 
        "avatar": "https://cdn.v2ex.com/gravatar/3b3eae829b465eb298075db0279d6818?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/895552", 
      "title": "\u4e00\u4e2a http \u8bf7\u6c42\u7531\u591a\u4e2a tcp \u6570\u636e\u5305\u7ec4\u6210\uff0c\u4e00\u4e2a tcp \u8fde\u63a5\u53ef\u4ee5\u53d1\u9001\u591a\u4e2a http \u8bf7\u6c42\uff0c\u662f\u8fd9\u6837\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/895552", 
      "date_published": "2022-11-16T00:04:44+00:00", 
      "content_html": "<p><strong>tcp \u8fde\u63a5</strong>\u548c<strong>tcp \u6570\u636e\u5305</strong>\u7684\u533a\u522b</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/eluotao", 
        "name": "eluotao", 
        "avatar": "https://cdn.v2ex.com/avatar/501b/5d85/268860_large.png?m=1773458155"
      }, 
      "url": "https://www.v2ex.com/t/895086", 
      "title": "httpCanary \u7684\u4e0a\u4f20\u670d\u52a1\u5668\u63d2\u4ef6\uff0c\u8fd9\u4e2a\u5e94\u8be5\u5982\u4f55\u914d\u7f6e\uff1f", 
      "id": "https://www.v2ex.com/t/895086", 
      "date_published": "2022-11-14T04:46:43+00:00", 
      "content_html": "httpCanary \u7684\u4e0a\u4f20\u670d\u52a1\u5668\u63d2\u4ef6\uff0c\u8fd9\u4e2a\u5e94\u8be5\u5982\u4f55\u914d\u7f6e\uff1f<br /><br />{<br />  \"header1\": \"value1\",<br />  \"header2\": \"value2\",<br />  \"header3\": \"value3\",<br />  \"server\": \"url\"<br />}<br /><br />\u60f3\u4e0a\u4f20\u6307\u5b9a\u63a5\u53e3\u7684\u6570\u636e\u3002\u5168\u90e8\u4fdd\u5b58\u5230\u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u5904\u7406\u3002<br /><br />\u6709\u6ca1\u6709\u7528\u8fc7\u8fd9\u4e2a\u529f\u80fd\u7684\u524d\u8f88\uff0c\u52a0\u6211\u5fae\u4fe1\uff0c\u8bf7\u559d\u5976\u8336 Base64\uff1aMzIzMjk2"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/XCG0000", 
        "name": "XCG0000", 
        "avatar": "https://cdn.v2ex.com/avatar/5435/9054/333563_large.png?m=1712412284"
      }, 
      "url": "https://www.v2ex.com/t/886658", 
      "title": "\u8bf7\u6559\u5404\u4f4d\u6280\u672f\u5927\u5927\u4e00\u4e2a websocket \u6d88\u606f\u4e22\u5931\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/886658", 
      "date_published": "2022-10-13T07:37:10+00:00", 
      "content_html": "\u6211\u4eec\u76ee\u524d\u6709\u4e2a\u5373\u65f6\u901a\u8baf\u7684\u573a\u666f\uff0c\u4f7f\u7528\u4e86 websocket \u65b9\u6848\uff0c\u4f46\u662f\u7ecf\u5e38\u4f1a\u51fa\u73b0\u6d88\u606f\u4e22\u5931\u7684\u60c5\u51b5\uff0c\u5305\u62ec ping \u53d1\u4e0d\u51fa\u53bb\uff0c\u6d88\u606f\u53d1\u4e0d\u51fa\u53bb\uff0c\u6216 pong \u6536\u4e0d\u5230\uff0c\u56de\u590d\u6d88\u606f\u6536\u4e0d\u5230\u7b49\uff1b<br />\u4f46\u662f\u8fde\u63a5\u53ef\u4ee5\u5efa\u7acb\u6210\u529f\uff0c\u5373\u6700\u521d\u4f7f\u7528 http update \u548c switch \u7684\u6d41\u7a0b\uff1b<br />\u540c\u4e00\u65f6\u95f4\uff0c\u5176\u4ed6\u7f51\u7edc\u90fd\u6ca1\u95ee\u9898\uff0c\u5305\u62ec\u540c\u5e94\u7528\u5176\u4ed6\u4e1a\u52a1\u7684 Http \u8bf7\u6c42\u548c\u83b7\u53d6\u5e94\u7b54\u3002<br /><br />\u901a\u8fc7\u6293\u5305\u4e5f\u53d1\u73b0\u4e0d\u4e86\u4ec0\u4e48\u5f02\u5e38\uff0c\u6682\u65f6\u6ca1\u5565\u5934\u7eea\uff0c\u53ea\u80fd\u6000\u7591\u7f51\u7edc\u8f6c\u53d1\u8bbe\u5907\u662f\u5426\u6709\u963b\u585e\u6216\u6d88\u606f\u4e22\u5931\u7684\u60c5\u51b5\u4e86\u2026\u2026"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/among", 
        "name": "among", 
        "avatar": "https://cdn.v2ex.com/avatar/4a56/94f4/417783_large.png?m=1711429226"
      }, 
      "url": "https://www.v2ex.com/t/873992", 
      "title": "\u67d0\u4e9b\u7f51\u7ad9\u5728\u7279\u5b9a\u7684\u63d0\u4ea4\u4e2d\u9700\u8981\u624b\u5de5\u9009\u62e9 chrome \u7684\u8bc1\u4e66\uff0c\u8fd9\u662f https \u7684\u53cc\u5411\u8ba4\u8bc1\u5417", 
      "id": "https://www.v2ex.com/t/873992", 
      "date_published": "2022-08-19T06:42:19+00:00", 
      "content_html": "<p>\u5728\u8bbf\u95ee\u4e00\u4e2a\u5185\u90e8\u7f51\u7ad9\u65f6\u5019\uff0c\u53ea\u6709\u90e8\u5206\u7684\u64cd\u4f5c\uff0c\u5982\u6700\u540e\u7684\u63d0\u4ea4\u64cd\u4f5c\u540e\uff0c\u9700\u8981\u9009\u62e9\u8bc1\u4e66\uff0c\u8fd9\u662f\u4ec0\u4e48\u539f\u7406\u3002</p>\n<p>https \u7684\u53cc\u5411\u8ba4\u8bc1\u5e94\u8be5\u662f\u6253\u5f00\u6240\u6709\u9875\u9762\u624d\u9700\u8981\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u662f\u4e0d\u662f\u6807\u51c6\u7684 https \u53cc\u5411\u8ba4\u8bc1\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/erquiasz0825", 
        "name": "erquiasz0825", 
        "avatar": "https://cdn.v2ex.com/gravatar/3f44839b14e4ab05f22a8f70274ce7cf?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/871056", 
      "date_modified": "2022-08-06T03:46:17+00:00", 
      "content_html": "<p>\u6bd4\u5982\u8bbf\u95ee <a href=\"http://v2ex.com\" rel=\"nofollow\">v2ex.com</a> \uff0c\u77ed\u65f6\u95f4\u5185\u6253\u5f00\u591a\u4e2a\u94fe\u63a5\uff0c\u7406\u8bba\u4e0a\u90fd\u662f\u590d\u7528\u4e00\u4e2a tcp \u8fde\u63a5\uff0c\u5b83\u7684\u5b58\u7eed\u671f\u662f\u591a\u4e45\uff0c\u4ee5\u4e0b\u8bf4\u6cd5\u5bf9\u5417\uff1f</p>\n<ol>\n<li>\u6211\u4e00\u76f4\u4e0d\u95f4\u65ad\u8bf7\u6c42 <a href=\"http://v2ex.com\" rel=\"nofollow\">v2ex.com</a> \uff0c\u90a3\u4e48\u59cb\u7ec8\u90fd\u662f\u4e00\u4e2a http/2 \u8fde\u63a5\uff0c\u65e0\u8bba\u8fc7\u4e86\u591a\u4e45</li>\n<li>\u6211\u8bf7\u6c42\u4e86\u4e00\u4e2a <a href=\"http://v2ex.com\" rel=\"nofollow\">v2ex.com</a> \u94fe\u63a5\uff0c\u9694\u4e86\u534a\u4e2a\u5c0f\u65f6\uff0c\u518d\u8bf7\u6c42\u4e00\u4e2a <a href=\"http://v2ex.com\" rel=\"nofollow\">v2ex.com</a> \u94fe\u63a5\uff0c\u8fd9\u662f\u4e24\u4e2a\u4e0d\u540c\u7684\u8fde\u63a5</li>\n<li>gRPC \u4e5f\u662f\u57fa\u4e8e http/2 \u4f20\u8f93\uff0c\u90a3\u4e48\u77ed\u65f6\u95f4\u5185\u591a\u6b21 rpc \u8bf7\u6c42\uff0c\u662f\u540c\u4e00\u4e2a tcp \u8fde\u63a5</li>\n</ol>\n", 
      "date_published": "2022-08-06T03:44:08+00:00", 
      "title": "HTTP/2 \u957f\u8fde\u63a5\u7684\u5b58\u7eed\u671f\u591a\u4e45\uff1f", 
      "id": "https://www.v2ex.com/t/871056"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/tf2", 
        "name": "tf2", 
        "avatar": "https://cdn.v2ex.com/avatar/8553/adf9/10426_large.png?m=1688377906"
      }, 
      "url": "https://www.v2ex.com/t/867197", 
      "title": "REST \u7956\u5e08\u7237 Roy Fielding \u8bf4\uff1a RPC \u5c31\u4e0d\u9002\u5408 RESTful \u98ce\u683c\u3002\u53ea\u6709\u8d85\u6587\u6863\u9002\u5408\u7528 REST", 
      "id": "https://www.v2ex.com/t/867197", 
      "date_published": "2022-07-19T02:20:24+00:00", 
      "content_html": "<p>I am getting frustrated by the number of people calling any HTTP-based interface a REST API. Today\u2019s example is the SocialSite REST API. That is RPC. It screams RPC. There is so much coupling on display that it should be given an X rating.</p>\n<p>What needs to be done to make the REST architectural style clear on the notion that hypertext is a constraint? In other words, if the engine of application state (and hence the API) is not being driven by hypertext, then it cannot be RESTful and cannot be a REST API. Period. Is there some broken manual somewhere that needs to be fixed?</p>\n<p>--Roy Fielding, Creator of the term REST</p>\n<p>REST APIs must be hypertext-driven</p>\n<p><a href=\"https://htmx.org/essays/how-did-rest-come-to-mean-the-opposite-of-rest/\" rel=\"nofollow\">https://htmx.org/essays/how-did-rest-come-to-mean-the-opposite-of-rest/</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/CatCode", 
        "name": "CatCode", 
        "avatar": "https://cdn.v2ex.com/gravatar/7dfa8c7d43ca8f5bb37248a2009fa040?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/849826", 
      "title": "2022 \u5e74 TLS 1.3 HTTP/2 \u4e0b\u5230\u5e95\u8be5\u4e0d\u8be5\u5f00\u542f Gzip \u538b\u7f29\uff1f", 
      "id": "https://www.v2ex.com/t/849826", 
      "date_published": "2022-04-28T07:09:56+00:00", 
      "content_html": "<p>Debian \u7cfb\u53d1\u884c\u7248\u91cc\u7684 nginx \u914d\u7f6e\u6587\u4ef6\u91cc\u6709\u4e00\u884c\u6ce8\u91ca\uff0c\u5927\u6982\u610f\u601d\u8bf4\uff1a\u56e0\u4e3a\u5b89\u5168\u539f\u56e0\uff0c\u5efa\u8bae SSL \u542f\u7528\u65f6\u5173\u95ed Gzip \u3002\n\u641c\u4e86\u4e00\u4e0b\uff0c\u786e\u5b9e\u662f\u6709 CRIME \u548c BREACH \u8fd9\u4e24\u79cd\u653b\u51fb\u65b9\u5f0f\u53ef\u80fd\u9488\u5bf9 HTTPS \u4e0b\u542f\u7528\u538b\u7f29\uff0c\u4f46\u662f\u90fd\u662f\u65e9\u4e9b\u5e74\u7684\u653b\u51fb\u65b9\u5f0f\u4e86\u3002</p>\n<p>\u6700\u8fd1\u770b NextCloud \u8fd9\u4e2a\u81ea\u5efa\u7f51\u76d8\u7684\u670d\u52a1\uff0c\u91cc\u9762\u7684 js \u6587\u4ef6\u4f53\u79ef\u5de8\u5927\uff0c\u5982\u679c\u4e0d\u542f\u7528\u538b\u7f29\uff0c\u8fdb\u4e2a\u9875\u9762\u52a0\u8f7d\u90fd\u8981\u8f6c\u534a\u5929\u3002\n\u770b\u4e86\u4e00\u4e0b\u5b89\u88c5\u914d\u7f6e\u7684\u6587\u6863\uff0c\u5728 Nginx \u91cc\u5b83\u662f\u9488\u5bf9\u90e8\u5206\u7c7b\u578b\u542f\u7528\u4e86 Gzip \u538b\u7f29\u7684\u3002</p>\n<p>\u6b64\u5916\uff0cGoogle \u4e5f\u641e\u51fa\u4e86 ngx_brotli \u8fd9\u4e48\u4e2a\u63d2\u4ef6\uff0c\u4e13\u95e8\u6765\u538b\u7f29 HTTP \u5185\u5bb9\u3002</p>\n<p>\u6b64\u65f6\uff0c\u6211\u60f3\u95ee\u95ee\u5404\u4f4d\uff0c\u5927\u5bb6\u8ba4\u4e3a\u662f\u5426\u5e94\u8be5 /\u662f\u5426\u9700\u8981\u5f00\u542f\u538b\u7f29\u5462\uff1f\u5927\u5bb6\u7684\u670d\u52a1\u5668\u91cc\u5f00\u542f\u4e86\u538b\u7f29\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hkhk366", 
        "name": "hkhk366", 
        "avatar": "https://cdn.v2ex.com/gravatar/9a75aad2405331be9707489b430120b5?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/849335", 
      "title": "\u53ef\u4ee5\u4e0d\u5173\u95ed\u670d\u52a1\u66ff\u6362\u8bc1\u4e66\u5417\uff1f \u8c22\u8c22", 
      "id": "https://www.v2ex.com/t/849335", 
      "date_published": "2022-04-26T04:46:44+00:00", 
      "content_html": "<p>let's encrypt \u7684\u8bc1\u4e66\u53ea\u6709 3 \u4e2a\u6708\uff0c\u4e5f\u5c31\u662f\u8bf4 3 \u4e2a\u6708\u5c31\u8981\u6362\u4e00\u6b21\u8bc1\u4e66\uff0c\u6211\u770b\u5230\u7684\u7f51\u4e0a\u7684\u6559\u7a0b\u90fd\u662f\u5173\u95ed nginx \u670d\u52a1\u540e\uff0c\u7c98\u8d34\u65b0\u7684\u8bc1\u4e66\u8fdb\u53bb\uff0c\u7136\u540e\u5f00\u542f nginx \u670d\u52a1\uff0c\u8fd9\u6837\u4f1a\u5bfc\u81f4\u670d\u52a1\u4e2d\u65ad\u4e00\u4e0b\uff0c\u8bf7\u95ee\u6709\u4ec0\u4e48\u529e\u6cd5\u53ef\u4ee5\u4e0d\u5173\u95ed\u670d\u52a1\u5c31\u80fd\u66f4\u65b0\u8bc1\u4e66\u5417\uff1f</p>\n<p>\u8fd8\u6709\u5176\u4ed6 go \u8bed\u8a00\u7684\u6846\u67b6\u6bd4\u5982 echo,gin \u8fd9\u79cd\u6846\u67b6\uff0c\u80fd\u4e0d\u80fd\u4e0d\u5173\u95ed\u670d\u52a1\u4e5f\u80fd\u66f4\u65b0\u8bc1\u4e66\u5417\uff1f\u8c22\u8c22\u5566\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/yezheyu", 
        "name": "yezheyu", 
        "avatar": "https://cdn.v2ex.com/avatar/f338/e452/166159_large.png?m=1698659181"
      }, 
      "url": "https://www.v2ex.com/t/821774", 
      "date_modified": "2021-12-13T01:53:54+00:00", 
      "content_html": "<p>\u5728 HTTP2 \u534f\u8bae\u4e2d\uff0c\u6570\u636e\u662f\u4f7f\u7528\u4e8c\u8fdb\u5236\u4f20\u8f93\u3002</p>\n<p>\u5bf9\u4e8e\u8fd9\u4e2a\u4e8c\u8fdb\u5236\u4f20\u8f93\uff0c\u6211\u4e0d\u592a\u7406\u89e3\u3002</p>\n<p>\u5047\u8bbe\u6211\u7ed9\u670d\u52a1\u5668\u53d1\u9001\u7684\u662f\u6587\u672c\u6d88\u606f\uff1a\u4f60\u597d</p>\n<p>\u5728 HTTP1.1 \u4e2d\u4f1a\u5728 head \u4e2d\u6807\u6ce8\u4e0a\uff1a<code>content-type: text/html; charset=UTF-8</code></p>\n<p>\u7136\u540e body \u4e2d\u628a \"\u4f60\u597d\" \u6309 utf-8 \u7f16\u7801\u8868\u8f6c\u6210<code>0x4F60(\u4f60) 0x597D(\u597d)</code>\u5bf9\u5e94\u7684\u4e00\u957f\u4e32\u7684\u4e8c\u8fdb\u5236\u5f62\u5f0f\u4f20\u8f93</p>\n<p>\"\u4f60\u597d\" \u5728\u7f51\u7edc\u4e0a\u4f20\u8f93\u5c31\u662f\u4e8c\u8fdb\u5236\u4f20\u8f93\uff0c\u4e3a\u5565\u4e0d\u7b97\u4e8c\u8fdb\u5236\u6d41\uff1f</p>\n<p>\u662f\u56e0\u4e3a\u4f7f\u7528\u7684\u662f\u6587\u672c\u7f16\u7801\u683c\u5f0f\u5417\uff1f</p>\n<p>\u90a3\u5728 HTTP2 \u4e2d\u4e0d\u4f7f\u7528\u6587\u672c\u683c\u5f0f\u7f16\u7801\uff0c\u600e\u4e48\u5904\u7406 \"\u4f60\u597d\" \u5462\uff1f</p>\n<p>\u662f\u65b0\u5236\u5b9a\u4e00\u79cd\u7f16\u7801\u683c\u5f0f\u5417\uff1f</p>\n<p>\u6bd4\u5982\u6211\u81ea\u5b9a\u4e49\u4e00\u79cd newCoding \u7f16\u7801\uff1a</p>\n<p>\u4f60 ---&gt; 01</p>\n<p>\u597d ---&gt; 10</p>\n<p>\u5728 head \u4e2d\u58f0\u660e<code>content-type: application/binary; newCoding</code></p>\n<p>\u7136\u540e body \u4e2d\u5c31\u76f4\u63a5\u53d1\u9001<code>01 10</code></p>\n<p>\u6211\u53ef\u4ee5\u8fd9\u6837\u7406\u89e3\u5417\uff1f</p>\n", 
      "date_published": "2021-12-13T01:52:58+00:00", 
      "title": "\u5173\u4e8e HTTP \u4e2d\u7f16\u7801\u4e00\u70b9\u7591\u95ee", 
      "id": "https://www.v2ex.com/t/821774"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hanssx", 
        "name": "hanssx", 
        "avatar": "https://cdn.v2ex.com/avatar/5912/4ca0/350569_large.png?m=1734523135"
      }, 
      "url": "https://www.v2ex.com/t/813303", 
      "title": "http \u4ee3\u7406 vs. https \u4ee3\u7406", 
      "id": "https://www.v2ex.com/t/813303", 
      "date_published": "2021-11-05T07:39:08+00:00", 
      "content_html": "<h2>\u8d77\u56e0</h2>\n<p>\u5c0f\u767d\u4eca\u5929\u5728\u5199 python requests proxies \u7684\u65f6\u5019\u53d1\u73b0\uff0c\u8bf7\u6c42 https \u7f51\u7ad9\u4e00\u76f4\u63d0\u793a\u63e1\u624b\u5931\u8d25\uff0c\u90e8\u5206\u4ee3\u7801\u5982\u4e0b</p>\n<pre><code class=\"language-python\">                    requests_proxies = {\n                        'http': f\"http://{first_proxy}\",\n                        'https': f\"https://{first_proxy}\",\n                    }\n                    last_proxy = s.get('https://ifconfig.me', proxies=requests_proxies, timeout=10).text\n</code></pre>\n<p>\uff0c\u540e\u9762\u624d\u53d1\u73b0\u672c\u5730 clash \u5f00\u7684\u662f socks5 \u548c http \u4ee3\u7406\uff0c\u6ca1\u6709 https \u4ee3\u7406\uff0c\u641c\u7d22\u53d1\u73b0\u7f51\u4e0a\u6709\u4eba\u628a https://\u6539\u6210\u4e86 http://\uff0c\u4f7f\u7528 http \u4ee3\u7406\u534f\u8bae\u6765\u8bbf\u95ee https \u7f51\u7ad9\u53ef\u4ee5\u6210\u529f\u3002</p>\n<h2>\u5b66\u4e60</h2>\n<p>\u4e8e\u662f\u4e0a\u7f51\u5b66\u4e60\u4e00\u756a\uff0c\u53d1\u73b0\u4e86\u4e0b\u9762\u8fd9\u4e24\u7bc7\u6587\u7ae0\uff1a\uff08\u5176\u4e2d\u7b2c 1 \u7bc7\u6587\u7ae0\u6700\u4e3b\u8981\u7684\u662f\u8bc4\u8bba\u90e8\u5206\uff09</p>\n<ol>\n<li><a href=\"https://www.hitoy.org/difference-between-http-and-https-proxy.html\" rel=\"nofollow\">https://www.hitoy.org/difference-between-http-and-https-proxy.html</a></li>\n<li><a href=\"https://lilywei739.github.io/2017/01/25/principle_for_http_https.html\" rel=\"nofollow\">https://lilywei739.github.io/2017/01/25/principle_for_http_https.html</a></li>\n</ol>\n<p>\u5176\u4e2d\u7b2c 1 \u7bc7\u6587\u7ae0\u8bc4\u8bba\u4e2d\u6709\u4e00\u6bb5</p>\n<pre><code>techon 2017-02-16 11:04:51\n\n\u73b0\u5728\u6765\u8bf4\n\nHTTP \u4ee3\u7406\u53ef\u4ee5\u652f\u6301 SSL \uff0c\u80fd\u591f\u4ee3\u7406 https \u7f51\u7ad9\n\nHTTPS \u4ee3\u7406\u4e00\u822c\u4e5f\u652f\u6301 http\n\n\u524d\u8005\u4e3a\u4ee3\u7406\u534f\u8bae\uff0c\u540e\u8005\u662f\u5e94\u7528\u534f\u8bae\uff0c\u4e0d\u53ef\u6df7\u540c\u4e00\u8c08\n</code></pre>\n<p>\u597d\u50cf\u89e3\u91ca\u4e86 http \u4ee3\u7406\u534f\u8bae\u53ef\u4ee5\u7528\u6765\u8bbf\u95ee https \u7ad9\u70b9\uff0c\u90a3\u4e48\u5bf9\u5e94\u7b2c 2 \u7bc7\u6587\u7ae0\u4e2d\u7684\u5e94\u8be5\u5c31\u662f\u6700\u540e\u9762\u7684\u56fe\n<img alt=\"http \u96a7\u9053\u4ee3\u7406\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://lilywei739.github.io/img/20170125/20170125-2.jpg\"/></p>\n<h2>\u7591\u60d1</h2>\n<ul>\n<li>\u7b2c 2 \u7bc7\u6587\u7ae0\u4e2d\u6240\u8bf4\u7684 HTTPS \u4ee3\u7406\uff0c\u51c6\u786e\u5730\u8bf4\uff0c\u5176\u5b9e\u5e94\u8be5\u53eb HTTP \u96a7\u9053\u4ee3\u7406\u8bbf\u95ee HTTPS \u7f51\u7ad9\u5427\uff1f</li>\n<li>\u5982\u679c\u4f7f\u7528 HTTPS \u4ee3\u7406\u8bbf\u95ee HTTP \u7f51\u7ad9\u548c HTTPS \u7f51\u7ad9\uff0c\u662f\u4e0d\u662f\u90fd\u9700\u8981\u5ba2\u6237\u7aef\u5148\u548c\u4ee3\u7406\u670d\u52a1\u5668\u5efa\u7acb TLS \u8fde\u63a5\uff0c\u518d\u8ba9\u4ee3\u7406\u670d\u52a1\u5668\u8fde\u63a5 HTTP \u7f51\u7ad9\u548c HTTPS \u7f51\u7ad9\uff0c\u8fd9\u662f\u4e2d\u95f4\u4eba\u7684\u60c5\u51b5\uff1f</li>\n</ul>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hanssx", 
        "name": "hanssx", 
        "avatar": "https://cdn.v2ex.com/avatar/5912/4ca0/350569_large.png?m=1734523135"
      }, 
      "url": "https://www.v2ex.com/t/812102", 
      "title": "\u4ed8\u8d39\u6c42\u89e3 curl ssl/tls \u7a81\u53d1\u72b6\u51b5\uff0c\u8bf7\u6c42 https \u7ad9\u70b9\u5747\u5931\u8d25\u3002", 
      "id": "https://www.v2ex.com/t/812102", 
      "date_published": "2021-11-01T04:46:26+00:00", 
      "content_html": "<p>\u4ed8\u8d39 30 \u7ea2\u5305\u9001\u7ed9\u7b2c\u4e00\u4f4d\u5e2e\u52a9\u89e3\u51b3\u6b64\u95ee\u9898\u7684 V \u53cb\uff0c\u4ee5\u804a\u8868\u5fc3\u610f\u3002</p>\n<h3>\u73af\u5883</h3>\n<p>\u7269\u7406\u673a Windows 10</p>\n<pre><code>C:\\Windows\\system32&gt;curl -V\ncurl 7.55.1 (Windows) libcurl/7.55.1 WinSSL\nRelease-Date: [unreleased]\nProtocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp\nFeatures: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL\n</code></pre>\n<p>\u865a\u62df\u673a Linux Mint 19.3 \uff0c\u7b49\u4ef7 Ubuntu 18.04 LTS</p>\n<pre><code># mint @ mint-virtual-machine in ~ [11:38:30] \n$ curl -V\ncurl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3\nRelease-Date: 2018-01-24\nProtocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp \nFeatures: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL \n\n</code></pre>\n<p>\u5728\u865a\u62df\u673a\u4e2d\uff0c\u524d\u51e0\u5929\u4e0b\u5348\u7528 pycharm \u7684\u65f6\u5019\u7a81\u7136\u5f39\u51fa\u4e2a\u516c\u53f8\u7684\u8bc1\u4e66\uff0c\u4e0d\u77e5\u9053\u4e3a\u5565\uff0c\u5c31\u6b63\u5e38\u5199\u4ee3\u7801\u4e2d\u3002\n<img alt=\"\u516c\u53f8\u8bc1\u4e66\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.imgur.com/VQSwqFI.png\"/></p>\n<p>\u540e\u9762\u5c1d\u8bd5\u53d1\u73b0\u6240\u6709 https \u7ad9\u70b9\u8fde\u63a5\u90fd\u6709\u95ee\u9898\uff0c\u6bd4\u5982\u4e0b\u56fe\u4e2d\u7684\u67d0\u5ea6\uff0c\n<img alt=\"Imgur\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.imgur.com/D1a7fF4.png\"/></p>\n<p>\u6309\u7167 curl \u95ee\u9898\u6307\u5f15 <a href=\"https://curl.se/docs/sslcerts.html\" rel=\"nofollow\">https://curl.se/docs/sslcerts.html</a> \uff0c\u4e0b\u8f7d cacert.pem \uff0c\u8fd0\u884c\u4f9d\u7136\u6ca1\u6709\u6548\u679c\n<img alt=\"Imgur\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.imgur.com/ha7V3it.png\"/></p>\n<p>\u540c\u65f6\u7269\u7406\u673a\u4e0a\u9762\u7684 windows curl \u4e5f\u4e0d\u597d\u4f7f\u4e86\n<img alt=\"Imgur\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.imgur.com/AbwO1cx.png\"/></p>\n<p>\u5ffd\u7565\u6389\u8bc1\u4e66\u662f\u53ef\u4ee5\u7684\uff0c\u6bd4\u5982<code>curl -v <a href=\"https://www.baidu.com\" rel=\"nofollow\">https://www.baidu.com</a> --insecure</code>\n\u4f46\u662f\u8fd9\u5e76\u4e0d\u662f\u89e3\u51b3\u65b9\u6848\u554a\uff0c\u53e6\u5916\u5176\u4ed6\u4f7f\u7528 HTTPS \u7684\u5de5\u5177\u597d\u50cf\u4e5f\u8fde\u4e0d\u4e0a HTTPS \u7ad9\u70b9\u4e86\uff0c\u50cf\u662f\u7cfb\u7edf\u95ee\u9898\uff1f\u4f46\u662f\u5b9e\u5728\u60f3\u4e0d\u660e\u767d\u7269\u7406\u673a\u548c\u865a\u62df\u673a\u540c\u65f6\u4e0d\u80fd\u8bf7\u6c42 HTTPS \u7684\u539f\u56e0\u662f\u5565\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Livid", 
        "name": "Livid", 
        "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776328067"
      }, 
      "url": "https://www.v2ex.com/t/809867", 
      "date_modified": "2021-10-23T09:51:36+00:00", 
      "content_html": "Cache-Status<br /><br />[Target]-Cache-Control<br /><br />\u5176\u4e2d\u76ee\u524d Cloudflare \u5df2\u7ecf\u53ef\u4ee5\u652f\u6301 [Target]-Cache-Control<br /><br /><a target=\"_blank\" href=\"https://httptoolkit.tech/blog/status-targeted-caching-headers/\" rel=\"nofollow noopener\">https://httptoolkit.tech/blog/status-targeted-caching-headers/</a>", 
      "date_published": "2021-10-22T09:40:03+00:00", 
      "title": "HTTP \u6807\u51c6\u4e2d\u5c06\u4f1a\u589e\u52a0\u7684\u4e24\u4e2a\u65b0\u7684\u548c\u7f13\u5b58\u6709\u5173\u7684 Response header", 
      "id": "https://www.v2ex.com/t/809867"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/semglassiebaba", 
        "name": "semglassiebaba", 
        "avatar": "https://cdn.v2ex.com/gravatar/f4f86728a053cb9f27ce3a136c52d1cb?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/807196", 
      "title": "\u8bf7\u6559\u5927\u4f6c\u6709\u5173 http/3 \u652f\u6301\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/807196", 
      "date_published": "2021-10-12T00:57:31+00:00", 
      "content_html": "\u64cd\u4f5c\u7cfb\u7edf\u662f win11 \u6b63\u5f0f\u7248\uff0c\u4e09\u5927\u6d4f\u89c8\u5668\u90fd\u65e0\u6cd5\u4f7f\u7528 http/3 \u8fde\u63a5\uff0c\u6d4f\u89c8\u5668 http/3 \u652f\u6301\u9009\u9879\u90fd\u5df2\u6253\u5f00\uff0c\u7136\u800c\u6c38\u8fdc\u53ea\u6709 h2\uff0c\u6293\u5305\u663e\u793a quic broken\uff0c\u540c\u6837\u7684\u7f51\u7edc ios15 \u4e0b\u7684\u82f9\u679c\u8bbe\u5907\u6d4f\u89c8\u5668\u6253\u5f00\u5b9e\u9a8c http/3 \u529f\u80fd\u5c31\u80fd\u4f7f\u7528\uff0c\u767e\u601d\u4e0d\u5f97\u5176\u89e3\u554a\uff0c\u8fd9\u662f\u56e0\u4e3a win11 \u7684\u7f18\u6545\u5417"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Sue6080", 
        "name": "Sue6080", 
        "avatar": "https://cdn.v2ex.com/avatar/b5b8/1382/543016_large.png?m=1618890416"
      }, 
      "url": "https://www.v2ex.com/t/804921", 
      "date_modified": "2021-09-28T08:26:53+00:00", 
      "content_html": "<p>\u6211\u6709\u767e\u5ea6\u627e\u65b9\u6cd5,\u4f46\u6d4f\u89c8\u5668\u8f93\u5165 javascript:alert(document.lastModified)\u67e5\u8be2\u7f51\u9875\u65f6\u95f4\u7684\u8fd9\u4e2a\u65b9\u5f0f\u662f\u8fc7\u65f6\u4e86\u5417?\n\u56e0\u4e3a\u4e00\u5806\u7f51\u7ad9\u5237\u65b0\u540e\u65f6\u95f4\u90fd\u4f1a\u53d8\u52a8,\u96be\u9053\u4e00\u5806\u7f51\u7ad9\u90fd\u7528\u4f2a\u9759\u6001\u7f51\u5740\u5417?\n\u7136\u540e\u67e5\u767e\u5ea6\u9996\u9875\u5237\u65b0\u540e\u4e5f\u662f\u4e00\u76f4\u53d8\u65f6\u95f4,\u6709\u5176\u5b83\u65b9\u6cd5\u53ef\u4ee5\u68c0\u6d4b\u4f2a\u9759\u6001\u8fd8\u7eaf\u9759\u6001\u7f51\u5740\u5417?\u6216\u662f\u6709\u7ebf\u4e0a\u5de5\u5177\u4e4b\u7c7b\u7684</p>\n", 
      "date_published": "2021-09-28T08:26:38+00:00", 
      "title": "\u5982\u4f55\u5206\u8fa8\u7f51\u7ad9\u662f\u4f2a\u9759\u6001\u8fd8\u7eaf\u9759\u6001\u7f51\u5740?", 
      "id": "https://www.v2ex.com/t/804921"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/aqtata", 
        "name": "aqtata", 
        "avatar": "https://cdn.v2ex.com/avatar/be60/9f31/171110_large.png?m=1764074284"
      }, 
      "url": "https://www.v2ex.com/t/799376", 
      "date_modified": "2021-09-02T01:35:06+00:00", 
      "content_html": "<p>\u5927\u5bb6\u90fd\u77e5\u9053\u53c2\u6570\u662f\u952e\u503c\u5bf9\u7684\u5f62\u5f0f</p>\n<p><code>/?key=value</code></p>\n<p>\u6211\u60f3\u95ee\u7684\u662f\u89c4\u8303\u4e2d\u6709\u6ca1\u6709\u5bf9\u8fd9\u79cd\u683c\u5f0f\u505a\u51fa\u89e3\u91ca\uff1f</p>\n<p><code>/?xxx</code></p>\n<p>\u8fd9\u4e2a<code>xxx</code>\u662f\u5f53\u4f5c key \u5904\u7406\u4e86\u8fd8\u662f\u5f53\u4f5c value \u5904\u7406\uff1f\u8fd8\u662f\u7531\u670d\u52a1\u5668\u5b9e\u73b0\u51b3\u5b9a\uff1f</p>\n", 
      "date_published": "2021-09-02T01:34:31+00:00", 
      "title": "\u5173\u4e8e querystring \u7591\u95ee", 
      "id": "https://www.v2ex.com/t/799376"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Dogod37", 
        "name": "Dogod37", 
        "avatar": "https://cdn.v2ex.com/gravatar/ac02763ab43c3b80878aa0417ebcbd86?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/798214", 
      "title": "\u63a5\u53e3\uff08\u670d\u52a1\u7aef\uff09\u5982\u4f55\u5224\u65ad\u5ba2\u6237\u7aef\u662f\u5426\u5df2\u7ecf\u5173\u95ed\u6b64\u6b21 http \u8bf7\u6c42\u4e86", 
      "id": "https://www.v2ex.com/t/798214", 
      "date_published": "2021-08-26T13:18:57+00:00", 
      "content_html": "<p>\u80cc\u666f\uff1a\u6846\u67b6 struts2\uff0c\u57fa\u4e8e servlet \u5b9e\u73b0\u4e86\u4e00\u4e2a\u63a5\u53e3\u3002</p>\n<p>\u95ee\u9898\uff1a\u5ba2\u6237\u7aef\u4ece\u5916\u90e8\u53d1\u6765\u4e00\u6b21 http post \u8bf7\u6c42\u3002\u5982\u679c\u5ba2\u6237\u7aef\u7684 socketTimeout \u65f6\u95f4\uff08\u6bd4\u5982 10s \uff09\u5c0f\u4e8e\u670d\u52a1\u5668\u5904\u7406\u8fd9\u6b21\u8bf7\u6c42\u4e1a\u52a1\u6570\u636e\u7684\u65f6\u95f4\uff08\u6bd4\u5982\u4ece\u6536\u5230\u8bf7\u6c42\u5efa\u7acb\u8fde\u63a5\u8981 30s \u624d\u80fd\u8fd4\u56de\u7ed3\u679c\u7ed9\u5ba2\u6237\u7aef\uff09\uff0c\u90a3\u8fd9\u65f6\u5019\u5ba2\u6237\u7aef\u5df2\u7ecf timeout \u5173\u95ed\u4e86\u6b64\u6b21\u8fde\u63a5\u4e86\uff0c\u670d\u52a1\u7aef\u80fd\u5426\u611f\u77e5\u5230\u6216\u8005\u8bf4\u68c0\u6d4b\u5230\u8fd4\u56de\u6570\u636e\u65f6\u5ba2\u6237\u7aef\u5df2\u7ecf\u5173\u95ed\u7684\u72b6\u6001\uff1f</p>\n<p>\u83dc\u9e1f\u63d0\u95ee\uff0c\u5404\u4f4d\u5927\u4f6c\u591a\u591a\u5305\u6db5\u54c8\u54c8\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/MonTubasa", 
        "name": "MonTubasa", 
        "avatar": "https://cdn.v2ex.com/avatar/05b1/b172/523685_large.png?m=1776044374"
      }, 
      "url": "https://www.v2ex.com/t/798191", 
      "title": "\u5c45\u7136 http \u8fd8\u6709 418 \u8fd9\u4e48\u4e2a\u72b6\u6001\u7801", 
      "id": "https://www.v2ex.com/t/798191", 
      "date_published": "2021-08-26T09:47:40+00:00", 
      "content_html": "<p>\u4eca\u5929\u5728\u770b http \u534f\u8bae\u7684\u65f6\u5019\uff0c\u5ffd\u7136\u7784\u5230\u4e00\u4e2a 418 \u72b6\u6001\u7801</p>\n<blockquote>\n<p>418 I'm a teapot\n\u670d\u52a1\u5668\u62d2\u7edd\u5c1d\u8bd5\u7528 \u201c\u8336\u58f6\u51b2\u6ce1\u5496\u5561\u201d\u3002</p>\n</blockquote>\n<p>wtf?\u8fd9\u73a9\u610f\u5728 <a href=\"http://developer.mozilla.org\" rel=\"nofollow\">developer.mozilla.org</a> \u8fd9\u4e2a\u7f51\u7ad9\u4e0a\u663e\u793a\u662f\u6240\u6709\u6d4f\u89c8\u5668\u517c\u5bb9\uff0c\u5b9e\u9645\u4e0a\u6d4b\u4e86\u4e00\u4e0b\uff0c\u5c31\u6ca1\u6709\u54ea\u4e2a\u6d4f\u89c8\u5668\u517c\u5bb9\u7684\u3002\n\u8fd9\u73a9\u610f\u771f\u9707\u64bc\u6211\u4e00\u5e74\uff0c\n\u67e5\u4e86\u4e00\u67e5\uff0c\u5c45\u7136\u8fd8\u6709\u4e2a [save418]<a href=\"https://save418.com\" rel=\"nofollow\">https://save418.com</a> \u8fd9\u4e48\u4e2a\u7f51\u7ad9\u3002\n\u4e00\u65f6\u4e0d\u77e5\u9053\u8bf4\u4ec0\u4e48\u597d\u3002\n\u8bdd\u8bf4\u5404\u4f4d\u6709\u6ca1\u6709\u8c01\u77e5\u9053\u54ea\u4e2a\u6d4f\u89c8\u5668\u73b0\u5728\u652f\u6301\u8fd9\u4e2a\u72b6\u6001\u7801\u7684\uff1f\u6211\u60f3\u6253\u5f00\u770b\u770b\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/LeeReamond", 
        "name": "LeeReamond", 
        "avatar": "https://cdn.v2ex.com/avatar/f481/5f03/469082_large.png?m=1713801588"
      }, 
      "url": "https://www.v2ex.com/t/796988", 
      "date_modified": "2021-08-20T04:35:58+00:00", 
      "content_html": "<p>\u6628\u5929\u7528 http2 \u4f20\u4e86\u5927\u6982 300G \u7684\u56fe\u7247\u6570\u636e\uff0c\u591a\u7ebf\u7a0b\u8dd1\u4e86 24 \u5c0f\u65f6\u5de6\u53f3\uff0c\u8868\u73b0\u4ee4\u4eba\u610f\u5916\u5730\u60ca\u559c\uff0c\u5168\u7a0b\u65e0\u65ad\u8fde\uff0c\u6570\u636e\u7684 md5 \u4e5f\u5168\u90e8\u6821\u9a8c\u901a\u8fc7\u3002</p>\n<p>\u4e0d\u592a\u6e05\u695a\u8fd9\u91cc\u9762\u6709\u591a\u5c11\u662f\u7531\u4e8e http2 \u7684\u7279\u6027\u4fdd\u8bc1\u7684\uff0c\u4f46\u6709\u70b9\u52a8\u5fc3\u60f3\u628a\u670d\u52a1\u8fc1\u79fb\u5230 http2 \u3002\u60f3\u95ee\u4e00\u4e0b\u5982\u679c\u60f3\u4f7f\u7528 http2 \u8fd9\u4e9b\u6bd4\u5982\u8fde\u63a5\u590d\u7528\u4e4b\u7c7b\u7684\u7279\u6027\uff0c\u5728\u670d\u52a1\u7aef\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u662f\u6709\u611f\u77e5\u7684\u5417\uff1f\u8fd8\u662f\u8bf4\u628a\u6302\u8f7d\u670d\u52a1\u7684 nginx \u8c03\u5230\u652f\u6301 http2 \u5c31 ok \u4e86\uff0c\u5269\u4e0b\u7684\u6d4f\u89c8\u5668\u4f1a\u81ea\u52a8\u5b8c\u6210\uff1f</p>\n", 
      "date_published": "2021-08-20T04:30:27+00:00", 
      "title": "\u5207\u6362\u5230 http2 \u5bf9\u5f00\u53d1\u4eba\u5458\u662f\u6709\u611f\u77e5\u7684\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/796988"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/v2clay", 
        "name": "v2clay", 
        "avatar": "https://cdn.v2ex.com/gravatar/ddb6722578ccb307d0b663e89f44506a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/792531", 
      "title": "\u5173\u4e8e quic \u7b2c\u4e00\u6b21\u8fde\u63a5 \u9700\u8981 tcp\uff08http2\uff09\u652f\u6301\u7684\u56f0\u60d1", 
      "id": "https://www.v2ex.com/t/792531", 
      "date_published": "2021-07-29T10:49:33+00:00", 
      "content_html": "\u5728 chrome \u8bbf\u5ba2\u6a21\u5f0f\u4e0b\uff0c\u6216\u8005\u6e05\u9664\u7f13\u5b58\uff0c\u8bbf\u95ee\u652f\u6301 quic \u7684\u7ad9\u70b9\uff0c\u5982 <a target=\"_blank\" href=\"http://www.v2ex.com/cdn-cgi/trace\" rel=\"nofollow noopener\">www.v2ex.com/cdn-cgi/trace</a> \u3002\u6d4b\u8bd5\u4e2d\u53d1\u73b0<br />\u8c8c\u4f3c quic \u6709\u4e9b bug\uff0c\u7b2c\u4e00\u6b21\u8fde\u63a5\u9700\u8981 http2\uff0c\u5373 tcp \u652f\u6301\uff0c\u5f53\u7b2c\u4e00\u6b21\u94fe\u63a5\u6210\u529f\u540e\uff0c\u7b2c\u4e8c\u6b21\u518d\u5237\u65b0\uff0c\u5c31\u53d8\u6210\u4e86 http3 \u3002<br />\u6ca1\u641e\u6e05\u695a\u539f\u56e0\u3002<br />\u4e5f\u6ca1\u6709\u641c\u7d22\u5230\u76f8\u5173\u7684\u8d44\u6599\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/likefly", 
        "name": "likefly", 
        "avatar": "https://cdn.v2ex.com/avatar/3c8b/cd89/227187_large.png?m=1567471254"
      }, 
      "url": "https://www.v2ex.com/t/789661", 
      "date_modified": "2021-07-16T02:16:06+00:00", 
      "content_html": "<p>\u6211\u60f3\u6293\u70b9\u513f\u6570\u636e\uff0c\u5730\u5740\u662f <code><a href=\"https://www.uukanshu.com/b/151226/\" rel=\"nofollow\">https://www.uukanshu.com/b/151226/</a></code> <br/>\n\u7136\u800c\u6d4f\u89c8\u5668\u548c <code>postman</code> \u8bbf\u95ee\u6ca1\u95ee\u9898\uff0c200 <br/>\n\u7528 curl \u5c31\u4e0d\u884c\u4e86\uff0c\u8fd4\u56de\u4e00\u4e2a 302 \u8df3\u8f6c 404 \u7684\u9875\u9762\u3002 <br/><br/>\n\u6211\u7279\u610f\u67e5\u770b\u4e86 <code>postman</code> \u7684 <code>header</code></p>\n<p><a href=\"https://imgtu.com/i/Wm3ACd\" rel=\"nofollow\"><img alt=\"Wm3ACd.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://z3.ax1x.com/2021/07/15/Wm3ACd.png\"/></a></p>\n<br/>\n<p>\u4f7f\u7528 <code>curl</code> \u52a0\u4e0a <code>postman</code> \u7684 <code>header</code> \u6267\u884c\u4e00\u4e0b</p>\n<pre><code>curl -H \"User-Agent:PostmanRuntime/7.28.2;Accept:*/*;Host:www.uukanshu.com;Accept-Encoding:gzip, deflate, br;Connection:keep-alive;Cookie:ASP.NET_SessionId=tbugww5w3cqigikqsg2ezvm5; fcip=111\" https://www.uukanshu.com/b/151226/\n</code></pre>\n<p>\u5f97\u5230\u5982\u4e0b\u7684\u8fd4\u56de</p>\n<pre><code class=\"language-html\">&lt;html&gt;&lt;head&gt;&lt;title&gt;Object moved&lt;/title&gt;&lt;/head&gt;&lt;body&gt;\n&lt;h2&gt;Object moved to &lt;a href=\"/404.htm\"&gt;here&lt;/a&gt;.&lt;/h2&gt;\n&lt;/body&gt;&lt;/html&gt;\n</code></pre>\n<p>\u60f3\u8bf7\u6559\u4e00\u4e0b\u5982\u4f55\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u5462\uff0c\u76ee\u6807\u7f51\u7ad9\u6ca1\u770b\u61c2\u662f\u5982\u4f55\u505a\u7684\u6821\u9a8c,\u8c22\u8c22</p>\n", 
      "date_published": "2021-07-15T03:28:14+00:00", 
      "title": "Postman 200 \u7136\u800c curl 302", 
      "id": "https://www.v2ex.com/t/789661"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/dongcheng", 
        "name": "dongcheng", 
        "avatar": "https://cdn.v2ex.com/avatar/3882/4fc9/61071_large.png?m=1398432070"
      }, 
      "url": "https://www.v2ex.com/t/789116", 
      "title": "\u600e\u4e48\u7528 httpcanary \u5728\u5b89\u5353 7 \u6293\u5c0f\u7a0b\u5e8f\u7684\u5305\uff1f", 
      "id": "https://www.v2ex.com/t/789116", 
      "date_published": "2021-07-12T13:11:59+00:00", 
      "content_html": "\u6dfb\u52a0\u4e86\u8bc1\u4e66\uff0c\u8fd8\u662f\u6293\u4e0d\u5230 HTTPS \u7684\u5305\u3002\u5728\u5b89\u5353 6 \u7528 fiddler \u6293\u5305\u5f88\u6b63\u5e38\u3002\u5b89\u5353 7 \u600e\u4e48\u641e\uff1f<br /><br />\u8c22\u8c22"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/dangyuluo", 
        "name": "dangyuluo", 
        "avatar": "https://cdn.v2ex.com/avatar/b251/eb66/70143_large.png?m=1674619921"
      }, 
      "url": "https://www.v2ex.com/t/788791", 
      "date_modified": "2021-07-10T21:48:26+00:00", 
      "content_html": "<p>\u6211\u5728\u5c40\u57df\u7f51\u5185\u642d\u5efa\u4e86\u4e00\u4e2a Frigate \uff08 object detection)\u670d\u52a1\uff0c\u7528\u6765\u505a\u4e00\u4e9b\u5bb6\u5ead\u81ea\u52a8\u5316\u3002Frigate \u63d0\u4f9b\u4e86\u4e00\u4e2a web \u63a5\u53e3\uff0c\u76d1\u542c\u5728 10.0.0.200:5000 \u4e0a\u3002\u4e3a\u4e86\u5728\u5916\u8bbf\u95ee\uff0c\u6211\u628a\u8def\u7531\u5668\u5f00\u653e\u4e86\u4e00\u4e2a\u7aef\u53e3\u8f6c\u53d1\u3002\u4f46\u662f Frigate \u672c\u8eab\u65e2\u4e0d\u63d0\u4f9b https\uff0c\u4e5f\u4e0d\u63d0\u4f9b\u9274\u6743\uff0c\u56e0\u6b64\u6211\u9700\u8981\u914d\u7f6e\u4e00\u4e9b\u5b89\u5168\u63aa\u65bd\u3002</p>\n<p>\u6211\u53ef\u4ee5\u53e6\u5916\u642d\u5efa\u4e00\u4e2a nginx \u4f5c\u4e3a https \u53cd\u5411\u4ee3\u7406\uff0c\u4f46\u662f\u9274\u6743\u7684\u8bdd\u73b0\u5728\u53ea\u80fd\u60f3\u5230 https basic authenticate \u3002\u8bf7\u95ee\u6709\u6ca1\u6709\u66f4\u5b89\u5168\u3001\u7b80\u5355\u7684\u505a\u6cd5\u5462\uff1f</p>\n", 
      "date_published": "2021-07-10T21:41:13+00:00", 
      "title": "\u5982\u4f55\u5b89\u5168\u5730\u5c06\u5c40\u57df\u7f51\u5185\u7684 http \u670d\u52a1\u66b4\u9732\u5728\u516c\u7f51\uff1f", 
      "id": "https://www.v2ex.com/t/788791"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/keyword233", 
        "name": "keyword233", 
        "avatar": "https://cdn.v2ex.com/avatar/eb8c/3332/440233_large.png?m=1624294482"
      }, 
      "url": "https://www.v2ex.com/t/779690", 
      "date_modified": "2021-06-06T14:29:39+00:00", 
      "content_html": "<p>\u5728 HTTP \u96a7\u9053\u4ee3\u7406\u4e2d\uff0c\u5ba2\u6237\u7aef\u53ef\u4ee5\u5355\u72ec\u6307\u5b9a\u76ee\u6807\u670d\u52a1\u5668\u7684 ip \u4e48\uff1f\u8fd8\u662f\u53ea\u80fd\u628a host \u4ea4\u7ed9\u4ee3\u7406\u670d\u52a1\u5668\u8ba9\u4ee3\u7406\u670d\u52a1\u5668\u6765\u89e3\u6790\u5bf9\u5e94 ip?</p>\n<p>\u4ee3\u7406\u670d\u52a1\u5668\u7248\u672c squid/3.5.19</p>\n", 
      "date_published": "2021-05-27T17:47:47+00:00", 
      "title": "\u5173\u4e8e HTTP \u4ee3\u7406\u7684\u7591\u60d1", 
      "id": "https://www.v2ex.com/t/779690"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/monkeyNik", 
        "name": "monkeyNik", 
        "avatar": "https://cdn.v2ex.com/avatar/d196/0d1a/499929_large.png?m=1697247708"
      }, 
      "url": "https://www.v2ex.com/t/779143", 
      "title": "\u5bf9 HTTP3 \u7684\u6027\u80fd\u7591\u60d1", 
      "id": "https://www.v2ex.com/t/779143", 
      "date_published": "2021-05-25T09:43:31+00:00", 
      "content_html": "<p>\u7406\u8bba\u4e0a HTTP3 \u4f9d\u8d56\u4e8e UDP \u4f20\u8f93\uff0c\u514d\u9664\u4e86 TCP \u7684\u5efa\u8fde\u548c\u65ad\u8fde\u63e1\u624b\uff0c\u6027\u80fd\u5e94\u8be5\u6709\u5f88\u5927\u63d0\u5347\u3002\u4f46\u662f\u672c\u4eba\u4f7f\u7528 h2load \uff08<a href=\"https://github.com/nghttp2/nghttp2/tree/quic\" rel=\"nofollow\">\u652f\u6301 http3 \u7684\u7248\u672c</a>\uff09\u8fdb\u884c\u6d4b\u8bd5\u53d1\u73b0 HTTP1.1 \u7684\u6027\u80fd\u8fdc\u9ad8\u4e8e HTTP3\uff0c\u4e0d\u7ba1\u662f\u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u5668\u662f\u5426\u5728\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u3002\u540c\u673a\u4e0a HTTP1.1 \u6bd4 HTTP3 \u7684 QPS \u9ad8\u4e00\u4e2a\u6570\u91cf\u7ea7\uff0c\u8de8\u673a\u7684\u60c5\u51b5\u4e0b HTTP1.1 \u6bd4 HTTP3 \u9ad8 3 \u500d\u5de6\u53f3\u3002<br/>\n\u670d\u52a1\u5668\u4f7f\u7528\u4e86 Nginx \u5b98\u65b9\u7684 Nginx-quic \u7248\u672c\u4ee5\u53ca cloudflare \u7684 Quiche Patch\uff0c\u8fd9\u4e24\u6b3e\u5747\u8fdb\u884c\u4e86\u6d4b\u8bd5\uff0c\u7ed3\u8bba\u90fd\u662f\u4e00\u81f4\u7684\u3002\n\u4e0d\u77e5\u9053\u8bf8\u4f4d v \u53cb\u6709\u6ca1\u6709\u4ec0\u4e48\u597d\u7684\u5efa\u8bae\uff0c\u662f\u5426\u662f\u6211\u914d\u7f6e\u7684\u95ee\u9898\uff08\u4e2a\u4eba\u611f\u89c9\u6ca1\u5565\u8fc7\u591a\u9700\u8981\u914d\u7f6e\u7684\u989d\uff09\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/HUNYXV", 
        "name": "HUNYXV", 
        "avatar": "https://cdn.v2ex.com/avatar/d4f7/2137/514923_large.png?m=1620959544"
      }, 
      "url": "https://www.v2ex.com/t/776316", 
      "date_modified": "2021-05-11T11:31:34+00:00", 
      "content_html": "<p>http \u8bf7\u6c42 stream \u54cd\u5e94\u65f6\uff0cresponse body \u6253\u5370\u51fa\u6765\u662f\u6b63\u786e\u7684\u7ed3\u679c\uff1a</p>\n<pre><code>\t\t{\"result\":{\"code\":1,\"msg\":\"1111\"}}\n        {\"result\":{\"code\":2,\"msg\":\"2222\"}}\n        {\"result\":{\"code\":3,\"msg\":\"3333\"}}\n        {\"result\":{\"code\":4,\"msg\":\"4444\"}}\n        {\"result\":{\"code\":5,\"msg\":\"5555\"}}\n        {\"result\":{\"code\":6,\"msg\":\"6666\"}}\n</code></pre>\n<p>\u4f46\u662f\u4f7f\u7528<code>runtime.JSONPb.Decode</code> \u65f6\uff0c\u4e5f\u4f1a\u5f97\u5230\u4e94\u4e2a\u7ed3\u679c\uff0c\u4f46\u6bcf\u4e2a decode \u51fa\u6765\u662f\u4e2a nil... :</p>\n<pre><code>=== RUN   TestHttpRespStream\n    service_test.go:147: resp: &lt;nil&gt;\n    service_test.go:147: resp: &lt;nil&gt;\n    service_test.go:147: resp: &lt;nil&gt;\n    service_test.go:147: resp: &lt;nil&gt;\n    service_test.go:147: resp: &lt;nil&gt;\n    service_test.go:147: resp: &lt;nil&gt;\n    service_test.go:149: EOF\n--- PASS: TestHttpRespStream (0.62s)\n</code></pre>\n<p>\u8fd9\u662f proto \u6587\u4ef6\uff1a</p>\n<pre><code class=\"language-proto\">// ./pb/test.proto\n\nsyntax = \"proto3\";\n\npackage pb;\n\noption go_package = \"/pb;pb\";\n\nimport \"google/api/annotations.proto\";\n\nmessage Req {\n    int32 id = 1;\n    string name = 2;\n}\n\nmessage Resp {\n    int32 code = 1;\n    string msg = 2;\n}\n\nservice TestService {\n    rpc QueryStreamResp(Req) returns (stream Resp){\n        option (google.api.http) = {\n            post: \"/query-stream-resp\"\n            body: \"*\"\n        };\n    };\n    rpc QueryStreamReq(stream Req) returns (Resp){\n        option (google.api.http) = {\n            post: \"/query-stream-req\"\n            body: \"*\"\n        };\n    };\n    \n    rpc Query(stream Req) returns (stream Resp){\n        option (google.api.http) = {\n            post: \"/query\"\n            body: \"*\"\n        };\n    };\n}\n</code></pre>\n<p>grpc \u670d\u52a1\u7aef\uff1a</p>\n<pre><code class=\"language-go\">func (ts *TestService) QueryStreamResp(req *pb.Req, stream pb.TestService_QueryStreamRespServer) error {\n\tlog.Printf(\"QueryStreamResp|start...|req: %+v\\n\", req)\n\tresult := []*pb.Resp{\n\t\t{Code: 1, Msg: \"1111\"},\n\t\t{Code: 2, Msg: \"2222\"},\n\t\t{Code: 3, Msg: \"3333\"},\n\t\t{Code: 4, Msg: \"4444\"},\n\t\t{Code: 5, Msg: \"5555\"},\n\t\t{Code: 6, Msg: \"6666\"},\n\t}\n\n\t// header := make(metadata.MD)\n\t// header.Append(\"content-type\", \"application/json\")\n\t// stream.SendHeader(header)\n\tfor i := range result {\n\t\tlog.Printf(\"resp: %+v\", result[i])\n\t\t\n\t\tif err := stream.Send(result[i]); err != nil {\n\t\t\tlog.Fatal(err)\n\t\t}\n\t\ttime.Sleep(100 * time.Millisecond)\n\t}\n\tlog.Println(\"QueryStreamResp|stop...\")\n\n\treturn nil\n}\n\n</code></pre>\n<p>\u5355\u5143\u6d4b\u8bd5\uff1a</p>\n<pre><code class=\"language-go\">func TestHttpRespStream(t *testing.T) {\n\turl := \"http://127.0.0.1:8080/query-stream-resp\"\n\treqData := &amp;pb.Req{Id: 1, Name: \"111\"}\n\n\tvar buffer bytes.Buffer\n\tencoder := (&amp;runtime.JSONPb{}).NewEncoder(&amp;buffer)\n\n\tif err := encoder.Encode(reqData); err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tctx, cancel := context.WithCancel(context.Background())\n\tdefer cancel()\n\treq, err := http.NewRequestWithContext(ctx, http.MethodPost, url, &amp;buffer)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tresp, err := http.DefaultClient.Do(req)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tdefer resp.Body.Close()\n\t// body, err := ioutil.ReadAll(resp.Body)\n\t// if err != nil {\n\t// \tt.Fatal(err)\n\t// }\n\t// t.Logf(\"body: %s\", string(body))\n\tjsonb := new(runtime.JSONPb)\n\tdencoder := jsonb.NewDecoder(resp.Body)\n\n\tfor {\n\t\tvar result *pb.Resp\n\t\terr := dencoder.Decode(result)\n\t\tif err == nil {\n\t\t\tt.Logf(\"resp: %+v\", result)\n\t\t} else {\n\t\t\tt.Logf(\"%+v\", err)\n\t\t\tbreak\n\t\t}\n\t}\n}\n</code></pre>\n", 
      "date_published": "2021-05-11T11:29:39+00:00", 
      "title": "\u5173\u4e8e http \u5904\u7406 grpc-gateway stream \u6d41\u5f0f\u54cd\u5e94\u65f6\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/776316"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/angcz", 
        "name": "angcz", 
        "avatar": "https://cdn.v2ex.com/gravatar/da1c2d8fc2127697a27eaec65cfbbaac?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/774653", 
      "date_modified": "2021-05-02T12:04:09+00:00", 
      "content_html": "\u6700\u8fd1\u770b\u4e86\u4e0b https \u53cc\u5411\u8ba4\u8bc1\uff0c\u6709\u4e9b\u70b9\u6ca1\u641e\u61c2\uff0c\u8fd8\u8bf7\u5927\u5bb6\u6307\u6559\u4e00\u4e0b\u3002<br /><br />1.\u5ba2\u6237\u7aef\u8bc1\u4e66\u662f\u600e\u4e48\u751f\u6210\u7684\uff1f<br />\u770b\u7f51\u4e0a\u8bf4\u662f\u7531\u9881\u53d1\u670d\u52a1\u7aef\u8bc1\u4e66\u7684 ca \u751f\u6210\u7684\uff0c\u611f\u89c9\u5e94\u8be5\u4e0d\u5bf9\u5427\uff1f\u4e5f\u8bb8\u5b9e\u9645\u5e94\u7528\u4e2d\u662f\u7528\u670d\u52a1\u7aef\u81ea\u7b7e\u540d\u8bc1\u4e66\u751f\u6210\u7684\uff1f<br /><br />2.\u5ba2\u6237\u7aef\u8bc1\u4e66\u662f\u600e\u4e48\u5b89\u88c5\u5230\u5ba2\u6237\u7aef\u7684\uff1f<br />\u5206 app \u548c\u7f51\u9875\u4e24\u79cd\u60c5\u51b5\uff1b\u5bf9\u4e8e\u4e0d\u540c\u7684\u7528\u6237\uff0c\u5b89\u88c5\u7684 app \u5e94\u8be5\u90fd\u662f\u4e00\u6837\u7684\u5427\uff0c\u90a3\u5c31\u662f\u8bf4\u5927\u5bb6\u7528\u7684\u90fd\u662f\u540c\u4e00\u4e2a\u5ba2\u6237\u7aef\u8bc1\u4e66\uff0c\u611f\u89c9\u4e0d\u5bf9\u5427\uff1f\u800c\u4e14\u5982\u679c\u662f\u5b89\u88c5\u65f6\u5185\u7f6e\u7684\u8bdd\uff0c\u90a3\u7f51\u9875\u8981\u600e\u4e48\u529e\u5462\uff0c\u7f51\u9875\u6ca1\u6709\u5b89\u88c5\u7684\u8fc7\u7a0b\u5427\uff1f\u6240\u4ee5\u5e94\u8be5\u662f\u5b89\u88c5\u4e4b\u540e\u751f\u6210\u7684\uff1f\u4f46\u662f\u751f\u6210\u53c8\u9700\u8981 ca \u79c1\u94a5\uff0c\u8fd9\u4e1c\u897f\u4e0d\u53ef\u80fd\u5185\u7f6e\u5728\u5ba2\u6237\u7aef\uff0c\u90a3\u662f\u901a\u8fc7\u7f51\u7edc\u4f20\u7ed9\u5ba2\u6237\u7aef\u7684\u5417\uff0c\u8fd9\u6837\u6ca1\u6cd5\u4fdd\u8bc1\u5b89\u5168\uff0c\u5e94\u8be5\u4e5f\u4e0d\u662f\u7684\u5427\uff1f<br /><br />3.\u53cc\u5411\u8ba4\u8bc1\u600e\u4e48\u9632\u6b62\u6293\u5305\u7684\u5462\uff1f<br />\u4ee5\u8fd9\u91cc <a target=\"_blank\" href=\"https://cloud.tencent.com/developer/article/1171381\" rel=\"nofollow noopener\">https://cloud.tencent.com/developer/article/1171381</a> \u7b2c\u4e94\u8282\u7684\u56fe\u4e3a\u4f8b\uff0c\u6211\u5982\u679c\u6293\u5305\uff0c\u53ea\u8981\u628a 4 \u548c 6 \u900f\u4f20\u7ed9\u670d\u52a1\u7aef\uff0c\u7136\u540e\u628a 8 \u900f\u4f20\u7ed9\u5ba2\u6237\u7aef\uff0c\u4e0d\u5c31\u80fd\u6b63\u5e38\u62e6\u622a\u5230 9 \uff08\u4e4b\u524d\u5df2\u7ecf\u628a\u670d\u52a1\u7aef\u8bc1\u4e66\u66ff\u6362\u6210\u6293\u5305\u8f6f\u4ef6\u8bc1\u4e66\uff09\uff0c\u4e5f\u5c31\u62ff\u5230\u4e86\u5bf9\u79f0\u52a0\u5bc6\u5bc6\u94a5\u4e86\u5417\uff1f<br /><br />\u518d\u6b21\u611f\u8c22\u5927\u5bb6\u6307\u5bfc\u3002", 
      "date_published": "2021-05-02T10:12:35+00:00", 
      "title": "\u5173\u4e8e https \u53cc\u5411\u8ba4\u8bc1\u7684\u7ec6\u8282", 
      "id": "https://www.v2ex.com/t/774653"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/silencil", 
        "name": "silencil", 
        "avatar": "https://cdn.v2ex.com/gravatar/e8925904ec23bda6ea271ae4fea2c91e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/768264", 
      "title": "\u8bf7\u6559\u5b9e\u73b0\u4e00\u4e2a\u652f\u6301 TCP\u3001\u81ea\u5b9a\u4e49\u7b49\u534f\u8bae\u4eff POSTMAN \u7a0b\u5e8f\u7684\u601d\u8def\uff1f", 
      "id": "https://www.v2ex.com/t/768264", 
      "date_published": "2021-04-06T02:18:48+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u4e1a\u52a1\u75db\u70b9\uff1a\u6211\u4eec\u7684\u7cfb\u7edf\u6709\u591a\u4e2a\u63a5\u53e3\u9700\u8981\u5411\u7b2c\u4e09\u65b9\u7cfb\u7edf\u8fdb\u884c\u53d1\u9001\u6570\u636e\uff0c\u63a5\u53e3\u4f7f\u7528\u7684\u5927\u90e8\u5206\u662f\u4e24\u65b9\u7cfb\u7edf\u534f\u5546\u7684\u81ea\u5b9a\u4e49\u534f\u8bae\uff0c\u800c\u6211\u4eec\u8fd9\u8fb9\u6bcf\u6b21\u5f00\u53d1\u5b8c\u90fd\u662f\u4e24\u773c\u62b9\u9ed1\u7684\u90e8\u7f72\u4e0a\u53bb\uff0c\u6ca1\u6709\u4e00\u4e2a\u5f88\u597d\u7684\u65b9\u6848\u6d4b\u8bd5\uff1b\u6211\u4eec\u4e5f\u65e0\u6cd5\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u6765\u5bf9\u6211\u4eec\u7684\u63a5\u53e3\u8fdb\u884c\u6d4b\u8bd5\uff1b\u6240\u4ee5\u5e0c\u671b\u80fd\u6709\u4e00\u4e2a\u652f\u6301\u81ea\u5b9a\u4e49\u534f\u8bae\u7684\u6d4b\u8bd5\u7a0b\u5e8f\uff0c\u8bf7\u6559\u5404\u4f4d\u6709\u4ec0\u4e48\u597d\u7684\u5b9e\u73b0\u65b9\u5f0f\u5417\uff1f\u6211\u73b0\u4e0b\u89c9\u5f97\u5e94\u8be5\u505a\u6210 web \u65b9\u5f0f\uff0c\u652f\u6301\u624b\u52a8\u548c\u5b9a\u65f6\u8bf7\u6c42\u3002</p>\n"
    }
  ]
}