diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 48512ab..4283e70 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -156,7 +156,7 @@ "profileSourceId": "7004edff-76db-412f-95d3-5fd8e180d055", "serial": { "columns": 48, - "data": "\u001b[48;5;22m \u001b[2m 81 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mpage-break-inside\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m avoid\u001b[38;2;147;153;178m;\u001b[12X\r\n\u001b[39m \u001b[2m 82 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mwidth\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m100\u001b[38;2;203;166;247m%\u001b[38;2;147;153;178m;\u001b[25X\r\n\u001b[39m \u001b[2m 83 \u001b[32;22m+\u001b[38;2;147;153;178m}\u001b[38X\r\n\u001b[39m \u001b[2m 84 \u001b[32;22m+\u001b[39X\r\n\u001b[39m \u001b[2m 85 \u001b[32;22m+\u001b[38;2;137;180;250mth\u001b[38;2;147;153;178m,\u001b[36X\r\n\u001b[39m \u001b[2m 86 \u001b[32;22m+\u001b[38;2;137;180;250mtd\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m{\u001b[35X\r\n\u001b[39m \u001b[2m 87 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mborder\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m1\u001b[38;2;203;166;247mpx\u001b[38;2;205;214;244m solid \u001b[38;2;147;153;178m#\u001b[38;2;205;214;244mb9b9b9\u001b[38;2;147;153;178m;\u001b[11X\r\n\u001b[39m \u001b[2m 88 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mpadding\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m4\u001b[38;2;203;166;247mpt\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m5\u001b[38;2;203;166;247mpt\u001b[38;2;147;153;178m;\u001b[20X\r\n\u001b[39m \u001b[2m 89 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mvertical-align\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m top\u001b[38;2;147;153;178m;\u001b[17X\r\n\u001b[39m \u001b[2m 90 \u001b[32;22m+\u001b[38;2;147;153;178m}\u001b[38X\r\n\u001b[39m \u001b[2m 91 \u001b[32;22m+\u001b[39X\r\n\u001b[39m \u001b[2m 92 \u001b[32;22m+\u001b[38;2;137;180;250mth\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m{\u001b[35X\r\n\u001b[39m \u001b[2m 93 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mbackground\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m#\u001b[38;2;205;214;244mf0f3f6\u001b[38;2;147;153;178m;\u001b[17X\r\n\u001b[39m \u001b[2m 94 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mfont-weight\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m700\u001b[38;2;147;153;178m;\u001b[20X\r\n\u001b[39m \u001b[2m 95 \u001b[32;22m+\u001b[38;2;147;153;178m}\u001b[38X\r\n\u001b[39m \u001b[2m 96 \u001b[32;22m+\u001b[39X\r\n\u001b[39m \u001b[2m 97 \u001b[32;22m+\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m,\u001b[34X\r\n\u001b[39m \u001b[2m 98 \u001b[32;22m+\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmath\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m{\u001b[32X\r\n\u001b[39m \u001b[2m 99 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mfont-family\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"DejaVu Sans Mono\"\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"Not\r\n\u001b[39m \u001b[2m \u001b[38;2;166;227;161;22mo Sans Mono\"\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m monospace\u001b[38;2;147;153;178m;\u001b[15X\r\n\u001b[39m \u001b[2m100 \u001b[32;22m+\u001b[38;2;147;153;178m}\u001b[38X\r\n\u001b[39m \u001b[2m101 \u001b[32;22m+\u001b[39X\r\n\u001b[39m \u001b[2m102 \u001b[32;22m+\u001b[38;2;137;180;250mhr\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m{\u001b[35X\r\n\u001b[39m \u001b[2m103 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mborder\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\u001b[38;2;147;153;178m;\u001b[27X\r\n\u001b[39m \u001b[2m104 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mborder-top\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m1\u001b[38;2;203;166;247mpx\u001b[38;2;205;214;244m solid \u001b[38;2;147;153;178m#\u001b[38;2;205;214;244mbbb\u001b[38;2;147;153;178m;\u001b[10X\r\n\u001b[39m \u001b[2m105 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mmargin\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m18\u001b[38;2;203;166;247mpt\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\u001b[38;2;147;153;178m;\u001b[22X\r\n\u001b[39m \u001b[2m106 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mpage-break-after\u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m avoid\u001b[38;2;147;153;178m;\u001b[13X\r\n\u001b[39m \u001b[2m107 \u001b[32;22m+\u001b[38;2;147;153;178m}\u001b[38X\r\n\u001b[0m\r\n\u001b[2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mCSS для печатной версии добавлен. Генерирую\r\n\u001b[2m │ \u001b[38;2;166;227;161;22mанализ - экзамен/Экономический анализ -\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mшпора к экзамену.pandoc.md'\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mfrom\r\n\u001b[39;2m │ … +8 lines\r\n └ [WARNING] Could not convert TeX math P_{INV}\r\n\u001b[0m \u001b[2m= \\frac{INV}{TR} \\times T_c, rendering as\r\n … +24 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m\\frac{2110}{Численность\\ персонала},\r\n\u001b[0m \u001b[2mrendering as TeX\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mHTML собран. Предупреждения только по формулам\r\n с русскими словами внутри TeX: pandoc оставил\r\n их как TeX-текст, это читаемо; ссылки и\r\n оглавление не затронуты. Печатаю PDF.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mchromium\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mheadless\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mno-sandbox\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m--\u001b[38;2;235;160;172mdisable-gpu\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mprint-to-pdf\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m'99\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mSystem/Export/Экономический анализ -\r\n\u001b[39;2m │ … +6 lines\r\n └ 1127593 bytes written to file 99 System/\r\n\u001b[0m \u001b[2mExport/Экономический анализ - экзамен/\r\n\u001b[0m \u001b[2mЭкономический анализ - шпора к экзамену -\r\n\u001b[0m \u001b[2mlinked.pdf\r\n\r\n\u001b[31;22m■ stream disconnected before completion: error\r\nsending request for url\r\n(https://chatgpt.com/backend-api/codex/responses)\r\n\r\n\u001b[39;48;5;238m \u001b[47X\r\n\u001b[1m›\u001b[22m \u001b[2mSummarize recent commits\r\n\u001b[0m * Restored history at Tue Jun 02 2026 16:48:16 GMT+0300 (Москва, стандартное время)\u001b[38;2;171;223;167mSecondBrain\r\n\r\n\u001b[33m⚠ Последний бэкап: 5 дн. назад. Запусти: backup-menu\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32mclaude\r\n\u001b[0m󰖟 Proxy enabled (127.0.0.1:2080)\r\n\u001b[11C\u001b[1mClaude\u001b[1CCode\u001b[1C\u001b[38;5;246;22mv2.1.159\r\n\u001b[38;5;174m ▐\u001b[48;5;16m▛███▜\u001b[49m▌\u001b[3C\u001b[38;5;246mSonnet\u001b[1C4.6\u001b[1Cwith\u001b[1Chigh\u001b[1Ceffort\r\n\u001b[38;5;174m▝▜\u001b[48;5;16m█████\u001b[49m▛▘\u001b[2C\u001b[38;5;246mClaude\u001b[1CPro\r\n\u001b[38;5;174m \u001b[1C▘▘\u001b[1C▝▝\u001b[4C\u001b[38;5;246m~/Documents/Vaults/SecondBrain\r\n\r\n\u001b[11C\u001b[39;1mClaude\u001b[1CCode\u001b[1C\u001b[38;5;246;22mv2.1.159\r\n\u001b[11C\u001b[39;1mClaude\u001b[1CCode\u001b[1C\u001b[38;5;246;22mv2.1.159\r\n\u001b[38;5;174m ▐\u001b[48;5;16m▛███▜\u001b[49m▌\u001b[3C\u001b[38;5;246mSonnet\u001b[1C4.6\u001b[1Cwith\u001b[1Chigh\u001b[1Ceffort\r\n\u001b[38;5;174m▝▜\u001b[48;5;16m█████\u001b[49m▛▘\u001b[2C\u001b[38;5;246mClaude\u001b[1CPro\r\n\u001b[38;5;174m \u001b[1C▘▘\u001b[1C▝▝\u001b[4C\u001b[38;5;246m~/Documents/Vaults/SecondBrain\r\n\r\n\u001b[3C\u001b[38;5;174;1mOpus\u001b[1C4.8\u001b[1Cis\u001b[1Cnow\u001b[1Cavailable!\u001b[38;5;246;22m ·\u001b[1C/model\u001b[1Cto\u001b[1Cswitch\r\n\r\n\u001b[38;5;239;48;5;237m❯ \u001b[38;5;231mingest, но не трогай @\"00 Inbox/Подготовка к \u001b[39m \r\n \u001b[38;5;231mэкзамену по Экономическому анализу.md\"\u001b[39m \r\n\u001b[38;5;246;49m \u001b[1X\u001b[1C⎿\u001b[1X\u001b[1C Read\u001b[1X\u001b[1C\u001b[1m00\u001b[1X\u001b[1CInbox/Подготовка\u001b[1X\u001b[1Cк\u001b[1X\u001b[1Cэкзамену\u001b[1X\u001b[1Cпо\u001b[5X\r\n\u001b[5CЭкономическому\u001b[1Cанализу.md\u001b[22m (166\u001b[1Clines)\r\n\r\n\u001b[38;5;231m●\u001b[1C\u001b[0mЧитаю\u001b[1CINDEX.md,\u001b[1Cчтобы\u001b[1Cпонять,\u001b[1Cчто\u001b[1Cуже\u001b[1Cесть\u001b[1Cпо\r\n\u001b[2Cтеме.\r\n\r\n\u001b[2C\u001b[38;5;246mRead\u001b[1C\u001b[1m1\u001b[22m file\u001b[1C(ctrl+o\u001b[1Cto\u001b[1Cexpand)\r\n\r\n\u001b[11C\u001b[39;1mClaude\u001b[1CCode\u001b[1C\u001b[38;5;246;22mv2.1.159\r\n\u001b[38;5;174m ▐\u001b[48;5;16m▛███▜\u001b[49m▌\u001b[3C\u001b[38;5;246mSonnet\u001b[1C4.6\u001b[1Cwith\u001b[1Chigh\u001b[1Ceffort\r\n\u001b[38;5;174m▝▜\u001b[48;5;16m█████\u001b[49m▛▘\u001b[2C\u001b[38;5;246mClaude\u001b[1CPro\r\n\u001b[38;5;174m \u001b[1C▘▘\u001b[1C▝▝\u001b[4C\u001b[38;5;246m~/Documents/Vaults/SecondBrain\r\n\r\n\u001b[3C\u001b[38;5;174;1mOpus\u001b[1C4.8\u001b[1Cis\u001b[1Cnow\u001b[1Cavailable!\u001b[38;5;246;22m ·\u001b[1C/model\u001b[1Cto\u001b[1Cswitch\r\n\r\n\u001b[38;5;239;48;5;237m❯ \u001b[38;5;231mingest, но не трогай @\"00 Inbox/Подготовка к \u001b[39m \r\n \u001b[38;5;231mэкзамену по Экономическому анализу.md\"\u001b[39m \r\n\u001b[38;5;246;49m \u001b[1X\u001b[1C⎿\u001b[1X\u001b[1C Read\u001b[1X\u001b[1C\u001b[1m00\u001b[1X\u001b[1CInbox/Подготовка\u001b[1X\u001b[1Cк\u001b[1X\u001b[1Cэкзамену\u001b[1X\u001b[1Cпо\u001b[5X\r\n\u001b[5CЭкономическому\u001b[1Cанализу.md\u001b[22m (166\u001b[1Clines)\r\n\r\n\u001b[38;5;231m●\u001b[1C\u001b[0mЧитаю\u001b[1CINDEX.md,\u001b[1Cчтобы\u001b[1Cпонять,\u001b[1Cчто\u001b[1Cуже\u001b[1Cесть\u001b[1Cпо\r\n\u001b[2Cтеме.\r\n\r\n\u001b[2C\u001b[38;5;246mRead\u001b[1C\u001b[1m1\u001b[22m file\u001b[1C(ctrl+o\u001b[1Cto\u001b[1Cexpand)\r\n\r\n\u001b[38;5;231m●\u001b[1C\u001b[0mВсе\u001b[1C14\u001b[1Cсвязанных\u001b[1Cзаметок\u001b[1Cуже\u001b[1Cесть\u001b[1Cв\u001b[1C\u001b[38;5;153m90\r\n\u001b[2CLibrary/Finance/Экономический\u001b[1Cанализ\u001b[0m.\u001b[1CЧитаю\r\n\u001b[2Cключевые,\u001b[1Cчтобы\u001b[1Cпонять,\u001b[1Cчто\u001b[1Cтам\u001b[1Cуже\u001b[1Cесть\u001b[1Cи\u001b[1Cчто\r\n\u001b[2Cнужно\u001b[1Cдополнить.\r\n\r\n\u001b[2C\u001b[38;5;246mRead\u001b[1C\u001b[1m2\u001b[22m files\u001b[1C(ctrl+o\u001b[1Cto\u001b[1Cexpand)\r\n\r\n\u001b[38;5;231m●\u001b[1C\u001b[0mЧитаю\u001b[1Cнесколько\u001b[1Cзаметок\u001b[1Cсо\u001b[1Cстатусом\u001b[1C\u001b[38;5;153mseed\u001b[0m,\r\n\u001b[2Cкоторые,\u001b[1Cвероятно,\u001b[1Cнаименее\u001b[1Cнаполнены.\r\n\r\n\u001b[2C\u001b[38;5;246mRead\u001b[1C\u001b[1m3\u001b[22m files\u001b[1C(ctrl+o\u001b[1Cto\u001b[1Cexpand)\r\n \u001b[1C⎿\u001b[1C Interrupted·\u001b[1CWhat\u001b[1Cshould\u001b[1CClaude\u001b[1Cdo\u001b[1Cinstead?\r\n\r\n\u001b[38;5;239;48;5;237m❯ \u001b[38;5;231mingest @\"00 Inbox/Идея.md\"\u001b[39m \r\n\u001b[38;5;246;49m ⎿  Read \u001b[1m00 Inbox/Идея.md\u001b[22m (16 lines)\u001b[11X\r\n\r\n\u001b[38;5;231m●\u001b[0m Контент файла уже известен (из системного\r\n контекста). Читаю шаблон, потом даю план.\r\n\r\n \u001b[1C\u001b[38;5;246mRead \u001b[1m1\u001b[22m file (ctrl+o to expand)\r\n\r\n\u001b[38;5;231m●\u001b[1C\u001b[39;1mПлан:\r\n\r\n\u001b[0m - \u001b[1mФайл:\u001b[0m \u001b[38;5;153m00 Inbox/Идея.md\u001b[0m — голосовая заметка о\r\n продуктовой\u001b[1Cидее\r\n\u001b[2C-\u001b[1C\u001b[1mСуть идеи:\u001b[1C\u001b[0mудобная\u001b[1Cупаковка\u001b[1Cдля\u001b[1Cуличной\u001b[1Cеды\r\n (шаурма и подобное): перфорация + открытие\r\n сверху\u001b[1C+\u001b[1Cтолкатель\u001b[1Cснизу\r\n\u001b[2C-\u001b[1C\u001b[1mЦелевая заметка:\u001b[1C\u001b[38;5;153;22m90 Library/Other/Идея — \r\n\u001b[0m \u001b[38;5;153mудобная упаковка для уличной еды.md\u001b[0m (новая,\r\n шаблон\u001b[1CBase\u001b[1CNote)\r\n\u001b[2C-\u001b[1C\u001b[1mWikilinks:\u001b[1C\u001b[0mблизких\u001b[1Cзаметок\u001b[1Cв\u001b[1Cvault\u001b[1Cнет;\r\n оставлю без ссылок\r\n\u001b[2C-\u001b[1C\u001b[1mПосле:\u001b[1C\u001b[0mисходник\u001b[1C→\u001b[1C\u001b[38;5;153m99 System/Archive/\u001b[0m,\r\n обновить INDEX.md\r\n\r\n Подтвердить?\r\n\r\n\u001b[38;5;246m✻\u001b[0m \u001b[38;5;246mBaked for 1m 25s\r\n\r\n\u001b[38;5;239;48;5;237m❯ \u001b[38;5;231mдавай\u001b[39m \r\n\u001b[0m\u001b[48X\r\n\u001b[38;5;246m●\u001b[0m \u001b[1mWrite\u001b[0m(90 Library/Other/Идея — удобная\u001b[1Cупаковка\r\n для уличной еды.md)\r\n\r\n\u001b[38;5;153m────────────────────────────────────────────────\r\n\u001b[0m \u001b[38;5;153;1mCreate file\r\n\u001b[0m \u001b[38;5;246m…er/Идея — удобная упаковка для уличной еды.md\r\n\u001b[38;5;239m╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌\r\n\u001b[1C\u001b[38;5;231;2m 1 \u001b[22m---\r\n\u001b[1C\u001b[2m \u001b[1C2\u001b[1C\u001b[22mtitle:\u001b[1CИдея\u001b[1C—\u001b[1Cудобная\u001b[1Cупаковка\u001b[1Cдля\u001b[1Cуличн\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mой\u001b[1Cеды\r\n\u001b[1C\u001b[2m \u001b[1C3\u001b[1C\u001b[22mstatus:\u001b[1Cseed\r\n\u001b[1C\u001b[2m \u001b[1C4\u001b[1C\u001b[22mtype:\u001b[1Cconcept\r\n\u001b[1C\u001b[2m \u001b[1C5\u001b[1C\u001b[22mtags:\u001b[1C[idea,\u001b[1Cproduct,\u001b[1Cbusiness,\u001b[1Cfood,\u001b[1Cpa\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mckaging]\r\n\u001b[1C\u001b[2m \u001b[1C6\u001b[1C\u001b[22mcreated:\u001b[1C2026-06-02\r\n\u001b[1C\u001b[2m \u001b[1C7\u001b[1C\u001b[22mupdated:\u001b[1C2026-06-02\r\n\u001b[1C\u001b[2m \u001b[1C8\u001b[1C\u001b[22maliases:\u001b[1C[]\r\n\u001b[1C\u001b[2m \u001b[1C9\u001b[1C\u001b[22msource:\u001b[1C\"Идея\"\r\n\u001b[1C\u001b[2m 10\u001b[1C\u001b[22m---\r\n\u001b[1C\u001b[2m 11\r\n\u001b[1C 12\u001b[1C\u001b[22m#\u001b[1CИдея\u001b[1C—\u001b[1Cудобная\u001b[1Cупаковка\u001b[1Cдля\u001b[1Cуличной\u001b[1Cед\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mы\r\n\u001b[1C\u001b[2m 13\r\n\u001b[1C 14\u001b[1C\u001b[22mПроизводить\u001b[1Cснеки\u001b[1Cи\u001b[1Cуличную\u001b[1Cеду\u001b[1Cв\u001b[1Cупаков\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mке,\u001b[1Cспроектированной\u001b[1Cпод\u001b[1Cудобство\u001b[1Cна\u001b[1Cход\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mу\u001b[1C—\u001b[1Cбез\u001b[1Cтарелок,\u001b[1Cбез\u001b[1Cсоусов\u001b[1Cна\u001b[1Cруках,\u001b[1Cбе\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mз\u001b[1Cнеловкого\u001b[1Cоткусывания.\r\n\u001b[1C\u001b[2m 15\r\n\u001b[1C 16\u001b[1C\u001b[22m##\u001b[1CСуть\r\n\u001b[1C\u001b[2m 17\r\n\u001b[1C 18\u001b[1C\u001b[22mУпаковка\u001b[1Cс\u001b[1Cтремя\u001b[1Cконструктивными\u001b[1Cэлемент\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mами:\r\n\u001b[1C\u001b[2m 19\u001b[1C\u001b[22m-\u001b[1C**Перфорация**\u001b[1Cпо\u001b[1Cпериметру\u001b[1C—\u001b[1Cлегко\u001b[1Cсн\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mимается\u001b[1Cслой\u001b[1Cза\u001b[1Cслоем\u001b[1Cпо\u001b[1Cмере\u001b[1Cсъедания\r\n\u001b[1C\u001b[2m 20\u001b[1C\u001b[22m-\u001b[1C**Открытое\u001b[1Cгорлышко\u001b[1Cсверху**\u001b[1C—\u001b[1Cдоступ\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mк\u001b[1Cсодержимому\u001b[1Cбез\u001b[1Cвскрытия\r\n\u001b[1C\u001b[2m 21\u001b[1C\u001b[22m-\u001b[1C**Толкатель\u001b[1Cснизу**\u001b[1C—\u001b[1Cпуш-механизм,\u001b[1Cко\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mторым\u001b[1Cподнимаешь\u001b[1Cсодержимое\u001b[1Cвверх\u001b[1Cпо\u001b[1Cмер\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mе\u001b[1Cтого,\u001b[1Cкак\u001b[1Cешь\r\n\u001b[1C\u001b[2m 22\r\n\u001b[1C 23\u001b[1C\u001b[22mПрямой\u001b[1Cаналог\u001b[1C—\u001b[1Cтюбик\u001b[1Cпомады\u001b[1Cили\u001b[1Cстик\u001b[1Cде\r\n\u001b[1C\u001b[2m \u001b[3C\u001b[22mзодоранта,\u001b[1Cадаптированный\u001b[1Cпод\u001b[1Cеду.\r\n●\u001b[1C\u001b[39;1mПлан:\r\n\r\n\u001b[2C\u001b[0m-\u001b[1C\u001b[1mФайл:\u001b[1C\u001b[38;5;153;22m00\u001b[1CInbox/Идея.md\u001b[1C\u001b[0m—\u001b[1Cголосовая\u001b[1Cзаметка\u001b[1Cо\r\n\u001b[2Cпродуктовой\u001b[1Cидее\r\n\u001b[2C-\u001b[1C\u001b[1mСуть\u001b[1Cидеи:\u001b[1C\u001b[0mудобная\u001b[1Cупаковка\u001b[1Cдля\u001b[1Cуличной\u001b[1Cеды\r\n\u001b[2C(шаурма\u001b[1Cи\u001b[1Cподобное):\u001b[1Cперфорация\u001b[1C+\u001b[1Cоткрытие\r\n\u001b[2Cсверху\u001b[1C+\u001b[1Cтолкатель\u001b[1Cснизу\r\n\u001b[2C-\u001b[1C\u001b[1mЦелевая\u001b[1Cзаметка:\u001b[1C\u001b[38;5;153;22m90\u001b[1CLibrary/Other/Идея\u001b[1C—\r\n\u001b[2Cудобная\u001b[1Cупаковка\u001b[1Cдля\u001b[1Cуличной\u001b[1Cеды.md\u001b[1C\u001b[0m(новая,\r\n\u001b[2Cшаблон\u001b[1CBase\u001b[1CNote)\r\n\u001b[2C-\u001b[1C\u001b[1mWikilinks:\u001b[1C\u001b[0mблизких\u001b[1Cзаметок\u001b[1Cв\u001b[1Cvault\u001b[1Cнет;\r\n\u001b[2Cоставлю\u001b[1Cбез\u001b[1Cссылок\r\n\u001b[2C-\u001b[1C\u001b[1mПосле:\u001b[1C\u001b[0mисходник\u001b[1C→\u001b[1C\u001b[38;5;153m99\u001b[1CSystem/Archive/\u001b[0m,\r\n\u001b[2Cобновить\u001b[1CINDEX.md\r\n\r\n\u001b[2CПодтвердить?\r\n\r\n\u001b[38;5;246m✻\u001b[1CBaked\u001b[1Cfor\u001b[1C1m\u001b[1C25s\r\n\r\n\u001b[38;5;239;48;5;237m❯ \u001b[38;5;231mдавай\u001b[39m \r\n\u001b[0m\u001b[48X\r\n\u001b[38;5;114m●\u001b[1C\u001b[39;1mWrite\u001b[0m(90\u001b[1CLibrary/Other/Идея\u001b[1C—\u001b[1Cудобная\u001b[1Cупаковка\r\n\u001b[7Cдля\u001b[1Cуличной\u001b[1Cеды.md)\r\n\u001b[38;5;246m ⎿  \u001b[0mWrote\u001b[1C\u001b[1m42\u001b[1C\u001b[0mlines\u001b[1Cto\u001b[1C\u001b[1m90 \r\n\u001b[0m \u001b[1C \u001b[1mLibrary/Other/Идея — удобная упаковка \r\n\u001b[0m \u001b[1mдля уличной еды.md\r\n\u001b[5C\u001b[38;5;231;22;2m 2 \u001b[22mtitle: Идея — удобная упаковка д\r\n\u001b[5C\u001b[2m \u001b[22mля уличной еды\r\n\u001b[0m \u001b[38;5;231;2m 3 \u001b[22mstatus: seed\r\n\u001b[0m \u001b[2C\u001b[38;5;231;2m 4 \u001b[22mtype: concept\r\n\u001b[0m \u001b[38;5;231;2m 5 \u001b[22mtags: [idea, product, business, \r\n\u001b[2C\u001b[0m \u001b[38;5;231;2m 6 \u001b[22mcreated: 2026-06-02\r\n\u001b[5C\u001b[2m 7 \u001b[22mupdated: 2026-06-02\r\n\u001b[5C\u001b[2m \u001b[1C8\u001b[1C\u001b[22maliases:\u001b[1C[]\r\n\u001b[5C\u001b[2m \u001b[1C9\u001b[1C\u001b[22msource:\u001b[1C\"Идея\"\r\n\u001b[5C\u001b[2m 10\u001b[1C\u001b[22m---\r\n\u001b[5C\u001b[38;5;246m…\u001b[1C+53\u001b[1Clines\u001b[1C(ctrl+o\u001b[1Cto\u001b[1Cexpand)\r\n\r\n\u001b[38;5;231m●\u001b[1C\u001b[0mТеперь архивирую исходник. В архиве уже\u001b[1Cесть\r\n \u001b[38;5;153mИдея.md\u001b[0m — сначала смотрю, что там.\r\n\r\n \u001b[1C\u001b[38;5;246mRead \u001b[1m1\u001b[22m file (ctrl+o to expand)\r\n\r\n\u001b[38;5;231m●\u001b[1C\u001b[0mКонфликт\u001b[1Cимён\u001b[1C—\u001b[1Cархивирую\u001b[1Cпод\u001b[1Cдругим\u001b[1Cименем.\r\n\r\n\u001b[38;5;114m●\u001b[0m \u001b[1mBash\u001b[0m(mv\r\n \"/home/ada/Documents/Vaults/SecondBrain/00\r\n\u001b[5C Inbox/Идея.md\"\r\n\u001b[6C\"/home/ada/Documents/Vaults/SecondBrain/99\r\n System/Archive/Идея — упаковка для\r\n \u001b[3Cеды.md\")\r\n\u001b[38;5;246m ⎿  Done\r\n\r\n\u001b[38;5;231m●\u001b[1C\u001b[0mТеперь обновляю INDEX.md: убираю строку\u001b[1Cиз\u001b[1C\u001b[38;5;153m00 \r\n\u001b[0m \u001b[38;5;153mInbox\u001b[0m, добавляю новую заметку в \u001b[38;5;153m90 \r\n\u001b[2CLibrary/Other\u001b[0m и строку в архив.\r\n\r\n\u001b[38;5;114m●\u001b[0m \u001b[1mUpdate\u001b[0m(99 System/INDEX.md)\r\n\u001b[38;5;246m ⎿  \u001b[0mAdded\u001b[1C\u001b[1m1\u001b[1C\u001b[0mline\r\n \u001b[38;5;231;2m 26 \u001b[22m |---------|---------|--------|-\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m -----|------|\r\n\u001b[0m \u001b[38;5;231;2m 27 \u001b[22m | [[Подготовка к экзамену по Эк\r\n\u001b[5C\u001b[2m \u001b[22m ономическому анализу]] | — | pr\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m ocessing | moc | [finance, exam\r\n\u001b[0m \u001b[2C\u001b[38;5;231;2m \u001b[22m , study, economic-analysis] |\r\n\u001b[0m \u001b[38;5;231;2m 28 \u001b[22m \r\n\u001b[2C\u001b[0m \u001b[38;5;77;48;5;22m 29 +\u001b[38;5;231m \u001b[0m\r\n\u001b[5C\u001b[38;5;231;2m 30\u001b[1C\u001b[22m ##\u001b[1C01\u001b[1CIdeas\r\n\u001b[5C\u001b[2m 31\u001b[1C\u001b[22m \r\n\u001b[5C\u001b[2m 32\u001b[1C\u001b[22m |\u001b[1CЗаметка\u001b[1C|\u001b[1CAliases\u001b[1C|\u001b[1CStatus\u001b[1C|\r\n\u001b[5C\u001b[2m \u001b[3C\u001b[22m Type\u001b[1C|\u001b[1CTags\u001b[1C|\r\n\r\n●\u001b[1C\u001b[0mПодожди, \u001b[38;5;153mИдея.md\u001b[0m не была в INDEX.md в разделе\r\n \u001b[38;5;153m00 Inbox\u001b[0m — исправляю лишний перенос.\r\n\r\n\u001b[38;5;114m●\u001b[1C\u001b[39;1mUpdate\u001b[0m(99 System/INDEX.md)\r\n\u001b[38;5;246m ⎿  \u001b[0mRemoved\u001b[1C\u001b[1m1\u001b[1C\u001b[0mline\r\n \u001b[38;5;231;2m 26 \u001b[22m |---------|---------|--------|-\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m -----|------|\r\n\u001b[0m \u001b[38;5;231;2m 27 \u001b[22m | [[Подготовка к экзамену по Эк\r\n\u001b[5C\u001b[2m \u001b[22m ономическому анализу]] | — | pr\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m ocessing | moc | [finance, exam\r\n\u001b[0m \u001b[2C\u001b[38;5;231;2m \u001b[22m , study, economic-analysis] |\r\n\u001b[0m \u001b[38;5;231;2m 28 \u001b[22m \r\n\u001b[2C\u001b[0m \u001b[38;5;167;48;5;52m 29 -\u001b[38;5;231m \u001b[0m\r\n\u001b[5C\u001b[38;5;231;2m 29\u001b[1C\u001b[22m ##\u001b[1C01\u001b[1CIdeas\r\n\u001b[5C\u001b[2m 30\u001b[1C\u001b[22m \r\n\u001b[5C\u001b[2m 31\u001b[1C\u001b[22m |\u001b[1CЗаметка\u001b[1C|\u001b[1CAliases\u001b[1C|\u001b[1CStatus\u001b[1C|\r\n\u001b[5C\u001b[2m \u001b[3C\u001b[22m Type\u001b[1C|\u001b[1CTags\u001b[1C|\r\n\r\n●\u001b[1C\u001b[0mТеперь добавляю новую заметку в раздел \u001b[38;5;153m90 \r\n\u001b[0m \u001b[38;5;153mLibrary/Other\u001b[0m и запись архива.\r\n\r\n\u001b[38;5;114m●\u001b[1C\u001b[39;1mUpdate\u001b[0m(99 System/INDEX.md)\r\n\u001b[38;5;246m ⎿  \u001b[0mAdded\u001b[1C\u001b[1m1\u001b[1C\u001b[0mline\r\n \u001b[38;5;231;2m 534 \u001b[22m | Заметка | Aliases | Status |\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m Type | Tags |\r\n\u001b[0m \u001b[38;5;231;2m 535 \u001b[22m |---------|---------|--------|\r\n\u001b[5C\u001b[2m \u001b[22m ------|------|\r\n\u001b[0m \u001b[38;5;231;2m 536 \u001b[22m | [[Guide - Статья]] | Guide -\r\n\u001b[0m \u001b[2C\u001b[38;5;231;2m \u001b[22m Статья | processing | concept\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m | [science, other] |\r\n\u001b[2C\u001b[0m \u001b[38;5;77;48;5;22m 537 +\u001b[38;5;231m| [[Идея — удобная упаковка дл\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231mя уличной еды]] | — | seed | c\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231moncept | [idea, product, busin\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231mess, food, packaging] | \u001b[0m\r\n\u001b[5C\u001b[38;5;231;2m 538\u001b[1C\u001b[22m |\u001b[1C[[Kyocera\u001b[1CFS-1020MFP\u001b[1C—\u001b[1Cошибк\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m и]]\u001b[1C|\u001b[1CKyocera\u001b[1CFS-1020MFP\u001b[1C—\u001b[1Cоши\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m бки\u001b[1C|\u001b[1Cseed\u001b[1C|\u001b[1Cguide\u001b[1C|\u001b[1C[other,\u001b[1Cp\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m rinter,\u001b[1Ckyocera]\u001b[1C|\r\n\u001b[5C\u001b[2m 539\u001b[1C\u001b[22m |\u001b[1C[[Other\u001b[1C-\u001b[1CMOC]]\u001b[1C|\u001b[1COther\u001b[1C-\u001b[1CMO\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m C\u001b[1C|\u001b[1Cseed\u001b[1C|\u001b[1Cmoc\u001b[1C|\u001b[1C[other,\u001b[1Cmisc]\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m \u001b[1C|\r\n\u001b[5C\u001b[2m 540\u001b[1C\u001b[22m |\u001b[1C[[Гайд\u001b[1Cна\u001b[1Cнаучников]]\u001b[1C|\u001b[1CГайд\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m \u001b[1Cна\u001b[1Cнаучников\u001b[1C|\u001b[1Cstable\u001b[1C|\u001b[1Cknowl\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m edge\u001b[1C|\u001b[1C[other]\u001b[1C|\r\n\r\n\u001b[38;5;114m●\u001b[1C\u001b[39;1mUpdate\u001b[0m(99 System/INDEX.md) \r\n\u001b[38;5;246m ⎿  \u001b[0mAdded\u001b[1C\u001b[1m1\u001b[1C\u001b[0mline\r\n \u001b[1C \u001b[38;5;231;2m 624 \u001b[22m | [[Знания Ruby]] | Знания Rub\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m y | seed | concept | [] |\r\n\u001b[0m \u001b[38;5;231;2m 625 \u001b[22m | [[Идеи для статьи]] | Идеи Д\r\n\u001b[5C\u001b[2m \u001b[22m ля Статьи | — | — | [] |\r\n\u001b[0m \u001b[38;5;231;2m 626 \u001b[22m | [[Идея]] | — | seed | concep\r\n\u001b[0m \u001b[3C\u001b[38;5;231;2m \u001b[22m t | [] |\r\n\u001b[0m \u001b[38;5;77;48;5;22m 627 +\u001b[38;5;231m| [[Идея — упаковка для еды]] \u001b[0m\r\n\u001b[2C \u001b[38;5;77;48;5;22m +\u001b[38;5;231m| — | seed | concept | [] | \u001b[0m\r\n\u001b[5C\u001b[38;5;231;2m 628\u001b[1C\u001b[22m |\u001b[1C[[Идея\u001b[1Cсети\u001b[1Cкохонена]]\u001b[1C|\u001b[1CИде\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m я\u001b[1Cсети\u001b[1Cкохонена\u001b[1C|\u001b[1Cseed\u001b[1C|\u001b[1Cconce\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m pt\u001b[1C|\u001b[1C[]\u001b[1C|\r\n\u001b[5C\u001b[2m 629\u001b[1C\u001b[22m |\u001b[1C[[Инструкция\u001b[1Cпо\u001b[1Cдеплою\u001b[1Cfinre\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m port-analyzer]]\u001b[1C|\u001b[1C—\u001b[1C|\u001b[1Cseed\u001b[1C|\u001b[1Cc\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m oncept\u001b[1C|\u001b[1C[]\u001b[1C|\r\n\u001b[5C\u001b[2m 630\u001b[1C\u001b[22m |\u001b[1C[[Итераторы\u001b[1Cдля\u001b[1Cобработки\u001b[1Cма\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m ссивов\u001b[1CRuby]]\u001b[1C|\u001b[1CИтераторы\u001b[1Cдля\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m обработки\u001b[1Cмассивов\u001b[1CRuby\u001b[1C|\u001b[1Cseed\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m \u001b[1C|\u001b[1Cconcept\u001b[1C|\u001b[1C[]\u001b[1C|\r\n\r\n●\u001b[1C\u001b[0mГотово.\r\n\r\n - Создана: \u001b[38;5;153m90 Library/Other/Идея — удобная \r\n\u001b[0m \u001b[38;5;153mупаковка для уличной еды.md\r\n\u001b[0m - Исходник → \u001b[38;5;153m99 System/Archive/Идея — упаковка\r\n\u001b[0m \u001b[38;5;153mдля еды.md\r\n\u001b[2C\u001b[0m-\u001b[1CINDEX.md\u001b[1Cобновлён\r\n\r\n \u001b[1mПредложенные связи, не добавленные \r\n\u001b[0m \u001b[1mавтоматически:\u001b[1C\u001b[0mв\u001b[1Cvault\u001b[1Cнет\u001b[1Cзаметок\u001b[1Cпо\r\n бизнес-идеям, стартапам или продуктовому\r\n\u001b[2Cдизайну — новая заметка пока изолирована.\r\n\r\n\u001b[38;5;246m✻\u001b[1CCrunched for 2m 12s\r\n\r\n\u001b[38;5;239;48;5;237m❯ \u001b[38;5;231mпочему ты добавил в Library, а не в ideas?\u001b[39m \r\n\u001b[0m\u001b[48X\r\n\u001b[38;5;231m●\u001b[0m Потому что формально следовал правилу:\u001b[1C\u001b[38;5;153m00 \r\n\u001b[0m \u001b[38;5;153mInbox\u001b[0m → \u001b[38;5;153m90 Library\u001b[0m. Но по смыслу — это идея,\u001b[1Cи\r\n\u001b[2Cей\u001b[1Cместо\u001b[1Cв\u001b[1C\u001b[38;5;153m01 Ideas/\u001b[0m.\r\n\r\n AGENTS.md говорит \"оформить идею на месте\"\r\n только\u001b[1Cдля\u001b[1Cфайлов,\u001b[1Cкоторые\u001b[1C\u001b[3mуже в\u001b[1C\u001b[38;5;153;23m01 Ideas/\u001b[0m.\r\n Для инбокса жёстко прописано \u001b[38;5;153m90 Library/\u001b[0m. Я не\r\n\u001b[2Cусомнился, хотя по содержимому цель очевидна.\r\n\r\n Переместить в \u001b[38;5;153m01 Ideas/\u001b[0m?\r\n\r\n\u001b[38;5;246m✻\u001b[0m \u001b[38;5;246mChurned for 25s\r\n\r\n\u001b[38;5;239;48;5;237m❯ \u001b[38;5;231mДавай, добавь в агентский файл, что ingest \u001b[39m \r\n \u001b[38;5;231mдля идеи направляет её в идеи\u001b[39m \r\n\u001b[0m \u001b[46X\r\n\u001b[38;5;231m●\u001b[0m Читаю AGENTS.md, чтобы найти точное\u001b[1Cместо\u001b[1Cдля\r\n правила.\r\n\r\n \u001b[1C\u001b[38;5;246mRead \u001b[1m1\u001b[22m file (ctrl+o to expand)\r\n\r\n\u001b[38;5;231m●\u001b[1C\u001b[0mДелаю\u001b[1Cвсё\u001b[1Cтри:\u001b[1Cперемещаю\u001b[1Cзаметку,\u001b[1Cобновляю\r\n AGENTS.md и INDEX.md.\r\n\r\n\u001b[38;5;114m●\u001b[1C\u001b[39;1mBash\u001b[0m(mv\r\n \"/home/ada/Documents/Vaults/SecondBrain/90\r\n Library/Other/Идея — удобная упаковка\u001b[1Cдля\r\n\u001b[6Cуличной\u001b[1Cеды.md\"\r\n \"/home/ada/Documents/Vaults/SecondBrain/01\r\n \u001b[3CIdeas/Идея\u001b[1C—…)\r\n\u001b[38;5;246m ⎿  Done\r\n\r\n\u001b[38;5;114m●\u001b[1C\u001b[39;1mUpdate\u001b[0m(AGENTS.md)\r\n\u001b[38;5;246m ⎿  \u001b[0mAdded\u001b[1C\u001b[1m3\u001b[1C\u001b[0mlines,\u001b[1Cremoved\u001b[1C\u001b[1m1\u001b[1C\u001b[0mline\r\n \u001b[1C \u001b[38;5;231;2m 92 \u001b[22m Для файлов из `01 Ideas/`: не \r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m переносить, не архивировать — \r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m оформить идею на месте (авторс\r\n\u001b[5C\u001b[2m \u001b[22m кая формулировка + структура +\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m wikilinks). Картинки: изучить\r\n\u001b[0m \u001b[2C\u001b[38;5;231;2m \u001b[22m , решить — вынести текстом или\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m оставить.\r\n\u001b[2C\u001b[0m \u001b[38;5;231;2m 93 \u001b[22m ВАЖНО: Извлекай максимум инфор\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m мации,\u001b[1Cне\u001b[1Cнадо\u001b[1Cповерхностно\u001b[1Cиз\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m учать\u001b[1Cматериалы,\u001b[1Cкаждая\u001b[1Cзаметк\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m а/информация\u001b[1Cважна,\u001b[1Cиспользуй\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m всё.\r\n\u001b[5C\u001b[2m \u001b[1C94\u001b[1C\u001b[22m \r\n\u001b[5C\u001b[38;5;167;48;5;52m 95 -\u001b[38;5;231m**План перед выполнением:** ка\u001b[0m\r\n\u001b[5C\u001b[38;5;167;48;5;52m -\u001b[38;5;231mкие файлы, какой шаблон, куда \u001b[0m\r\n\u001b[5C\u001b[38;5;167;48;5;52m -\u001b[38;5;231mв `90 Library/`, какие wikilin\u001b[0m\r\n\u001b[5C\u001b[38;5;167;48;5;52m -\u001b[38;5;231mks. \u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m 95 +\u001b[38;5;231m**Определение назначения:** пе\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231mред созданием заметки проверит\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231mь содержимое файла. Если это и\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231mдея (набросок, бизнес-идея, за\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231mдумка) — создавать в `01 Ideas\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231m/`, не в `90 Library/`. Призна\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231mк идеи: нет устоявшегося знани\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231mя, только авторская задумка, т\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231mег `idea` или явный творческий\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231m/предпринимательский контекст.\u001b[0m\r\n\u001b[5C\u001b[38;5;231;2m \u001b[1C96\u001b[1C\u001b[22m \r\n\u001b[5C\u001b[38;5;77;48;5;22m 97 +\u001b[38;5;231m**План перед выполнением:** ка\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231mкие файлы, какой шаблон, куда \u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231m(`01 Ideas/` или `90 Library/`\u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m +\u001b[38;5;231m), какие wikilinks. \u001b[0m\r\n\u001b[5C\u001b[38;5;77;48;5;22m 98 +\u001b[38;5;231m \u001b[0m\r\n\u001b[5C\u001b[38;5;231;2m \u001b[1C99\u001b[1C\u001b[22m **После\u001b[1Cподтверждения:**\r\n\u001b[5C\u001b[2m 100\u001b[1C\u001b[22m 1.\u001b[1CЧитать\u001b[1C`99\u001b[1CSystem/INDEX.md`\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m \u001b[1C→\u001b[1Cнайти\u001b[1Cсвязанные\u001b[1Cзаметки\u001b[1C→\u001b[1Cр\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m ешить:\u001b[1Cдополнить\u001b[1Cсуществующую\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m или\u001b[1Cсоздать\u001b[1Cновую.\r\n\u001b[5C\u001b[2m 101\u001b[1C\u001b[22m 2.\u001b[1CСоздать/дополнить\u001b[1Cзаметку\u001b[1Cв\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m \u001b[1C`90\u001b[1CLibrary/`\u001b[1Cпо\u001b[1Cшаблону.\u001b[1CРас\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m ширить,\u001b[1Cструктурировать,\u001b[1Cзапол\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m нить\u001b[1Cfrontmatter,\u001b[1C`status:\u001b[1Csee\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m d`.\r\n\r\n●\u001b[1C\u001b[0mТеперь обновляю INDEX.md: убираю из \u001b[38;5;153m90 \r\n\u001b[0m \u001b[38;5;153mLibrary/Other\u001b[0m, добавляю в \u001b[38;5;153m01 Ideas\u001b[0m.\r\n\r\n\u001b[38;5;114m●\u001b[1C\u001b[39;1mUpdate\u001b[0m(99 System/INDEX.md)\r\n\u001b[38;5;246m ⎿  \u001b[0mRemoved\u001b[1C\u001b[1m1\u001b[1C\u001b[0mline\r\n \u001b[38;5;231;2m 534 \u001b[22m | Заметка | Aliases | Status |\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m Type | Tags |\r\n\u001b[0m \u001b[38;5;231;2m 535 \u001b[22m |---------|---------|--------|\r\n\u001b[5C\u001b[2m \u001b[22m ------|------|\r\n\u001b[0m \u001b[38;5;231;2m 536 \u001b[22m | [[Guide - Статья]] | Guide -\r\n\u001b[0m \u001b[2C\u001b[38;5;231;2m \u001b[22m Статья | processing | concept\r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m | [science, other] |\r\n\u001b[2C\u001b[0m \u001b[38;5;167;48;5;52m 537 -\u001b[38;5;231m| [[Идея — удобная упаковка дл\u001b[0m\r\n\u001b[5C\u001b[38;5;167;48;5;52m -\u001b[38;5;231mя уличной еды]] | — | seed | c\u001b[0m\r\n\u001b[5C\u001b[38;5;167;48;5;52m -\u001b[38;5;231moncept | [idea, product, busin\u001b[0m\r\n\u001b[5C\u001b[38;5;167;48;5;52m -\u001b[38;5;231mess, food, packaging] | \u001b[0m\r\n\u001b[5C\u001b[38;5;231;2m 537\u001b[1C\u001b[22m |\u001b[1C[[Kyocera\u001b[1CFS-1020MFP\u001b[1C—\u001b[1Cошибк\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m и]]\u001b[1C|\u001b[1CKyocera\u001b[1CFS-1020MFP\u001b[1C—\u001b[1Cоши\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m бки\u001b[1C|\u001b[1Cseed\u001b[1C|\u001b[1Cguide\u001b[1C|\u001b[1C[other,\u001b[1Cp\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m rinter,\u001b[1Ckyocera]\u001b[1C|\r\n\u001b[5C\u001b[2m 538\u001b[1C\u001b[22m |\u001b[1C[[Other\u001b[1C-\u001b[1CMOC]]\u001b[1C|\u001b[1COther\u001b[1C-\u001b[1CMO\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m C\u001b[1C|\u001b[1Cseed\u001b[1C|\u001b[1Cmoc\u001b[1C|\u001b[1C[other,\u001b[1Cmisc]\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m \u001b[1C|\r\n\u001b[5C\u001b[2m 539\u001b[1C\u001b[22m |\u001b[1C[[Гайд\u001b[1Cна\u001b[1Cнаучников]]\u001b[1C|\u001b[1CГайд\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m \u001b[1Cна\u001b[1Cнаучников\u001b[1C|\u001b[1Cstable\u001b[1C|\u001b[1Cknowl\r\n\u001b[5C\u001b[2m \u001b[4C\u001b[22m edge\u001b[1C|\u001b[1C[other]\u001b[1C|\r\n\r\n\u001b[38;5;114m●\u001b[1C\u001b[39;1mUpdate\u001b[0m(99 System/INDEX.md)\r\n\u001b[38;5;246m ⎿  \u001b[0mAdded\u001b[1C\u001b[1m1\u001b[1C\u001b[0mline\r\n \u001b[1C \u001b[38;5;231;2m 31 \u001b[22m | Заметка | Aliases | Status | \r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m Type | Tags |\r\n\u001b[0m \u001b[38;5;231;2m 32 \u001b[22m |---------|---------|--------|-\r\n\u001b[5C\u001b[2m \u001b[22m -----|------|\r\n\u001b[0m \u001b[38;5;231;2m 33 \u001b[22m | [[Идея от 2026-05-14]] | Форм\r\n\u001b[0m \u001b[2C\u001b[38;5;231;2m \u001b[22m ат коротких роликов с адресным \r\n\u001b[0m \u001b[38;5;231;2m \u001b[22m объяснением | processing | conc\r\n\u001b[2C\u001b[0m \u001b[38;5;231;2m \u001b[22m ept | [idea, audio, content, se\r\n\u001b[5C\u001b[2m \u001b[3C\u001b[22m curity-awareness]\u001b[1C|\r\n\u001b[5C\u001b[38;5;77;48;5;22m 34 +\u001b[38;5;231m| [[Идея — удобная упаковка для\u001b[0m\r\n\u001b[2C-\u001b[1C\u001b[38;5;153mAGENTS.md\u001b[1C\u001b[0m—\u001b[1Cдобавлено\u001b[1Cправило:\u001b[1Cидеи\u001b[1Cиз\r\n инбокса → \u001b[38;5;153m01 Ideas/\u001b[0m, не \u001b[38;5;153m90 Library/\r\n\u001b[0m -\u001b[1C\u001b[38;5;153mINDEX.md\u001b[1C\u001b[0m—\u001b[1Cобновлён\r\n\r\n\u001b[38;5;246m✻\u001b[1CBaked for 3m 1s\r\n\r\n\u001b[38;5;244m────────────────────────────────────────────────\r\n\u001b[0m❯ \u001b[7m…\r\n\u001b[0m \r\n\u001b[38;5;244m────────────────────────────────────────────────\r\n\u001b[2C\u001b[38;5;246mPress Ctrl-D again to exit\r\n\u001b[9C~73k uncached · /clear to start fresh\r\n\u001b[12C\u001b[38;5;211m✗\u001b[1CAuto-update\u001b[1Cfailed\u001b[1C·\u001b[1CRun\u001b[1C\u001b[1m/doctor\r\n\r\n\u001b[39;22;2mResume this session with:\r\nclaude --resume 924830f2-c5db-476d-904b-3c128ced5ab8\r\n\u001b[0m^[[A\u001b[7;1m%\u001b[0m \r\n\u001b[38;5;76m❯\u001b[0m \u001b[32mcodex\r\n\u001b[0m󰖟 Proxy enabled (127.0.0.1:2080)\r\nWARNING: failed to clean up stale arg0 temp dirs: Permission denied (os error 13)\r\n\u001b[2m╭───────────────────────────────────────────────\r\n──╮\r\n│ \u001b[36;22m✨ Update available!\u001b[0m \u001b[1m0.135.0 -> 0.136.0\r\n\u001b[22;2m│\r\n│ \u001b[0minstallation options.\r\n\u001b[2m│\r\n│\r\n│\r\n│ \u001b[0mSee full release notes:\r\n\u001b[2m│\r\n│ \u001b[36;4;22mhttps://github.com/openai/codex/releases/latest\u001b[39;24;2m │\r\n╰───────────────────────────────────────────────\r\n──╯\r\n\r\n╭────────────────────────────────────────────╮\r\n│ >_ \u001b[0mOpenAI Codex\u001b[2m (v0.135.0) │\r\n│ │\r\n│ model: \u001b[0mgpt-5.5 high\u001b[2m \u001b[36;22m/model\u001b[39;2m to change │\r\n│ directory: \u001b[0m~/Documents/Vaults/SecondBrain\u001b[2m │\r\n╰────────────────────────────────────────────╯\r\n\r\n\u001b[0m \u001b[1mTip:\u001b[0m NEW: Network proxy can now be enabled\r\n from /experimental. Restart Codex after\r\n enabling it.\r\n\r\n\u001b[48;5;237m\u001b[48X\r\n\u001b[1;2m› \u001b[22;22mпосле синка очень много конфиликтов, разреши\r\n их\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[2m• \u001b[0mСначала найду все \u001b[36msync-conflict\u001b[0m файлы,\r\n сопоставлю с оригиналами и посмотрю diff-\r\n резюме. После этого дам план разрешения и\r\n дождусь подтверждения перед правками.\r\n\r\n\u001b[2m• \u001b[0mUpdated Plan\r\n\u001b[2m └ \u001b[0m□ \u001b[36;1mНайти sync-conflict файлы\r\n\u001b[0m □ \u001b[2mСопоставить с оригиналами и diff\r\n\u001b[0m □ \u001b[2mПредложить план разрешения\r\n\u001b[0m □ \u001b[2mПосле подтверждения внести правки и\r\n\u001b[0m \u001b[2mобновить INDEX\r\n\r\n\u001b[31;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mfiles\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mg\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'*.md'\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mg\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'!**/.trash/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22m**'\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mg\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'!**/.git/**'\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mg\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'!**/.obsidian/**'\r\n\u001b[39;2m │ \u001b[38;2;148;226;213;22m|\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mrg\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'sync-conflict-[0-9]{8}-[0-9]\r\n\u001b[39;2m │ … +1 lines\r\n └ (no output)\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[36;22mrg\u001b[0m в этой среде ведёт себя не как ripgrep,\r\n переключаюсь на \u001b[36mfind\u001b[0m, чтобы не гадать по\r\n алиасам.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mwhich\u001b[38;2;205;214;244m rg\r\n\u001b[39;2m └ /usr/bin/rg\r\n\r\n\u001b[31;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m find .\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mpath\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'*/.trash/*'\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mo\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mpath\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22m'*/.git/*'\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mo\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mpath\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'*/.obsidian/*'\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mo\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m-\u001b[38;2;235;160;172mtype\u001b[38;2;205;214;244m f\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mname\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'*sync-conflict-*.md'\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mprint\r\n\u001b[39;2m └ rtk: rtk find does not support compound\r\n\u001b[0m \u001b[2mpredicates or actions (e.g. -not, -exec).\r\n\u001b[0m \u001b[2mUse `find` directly.\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[36;22mfind\u001b[0m тоже подменён оболочкой. Запускаю\r\n системный \u001b[36m/usr/bin/find\u001b[0m напрямую.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250m/usr/bin/find\u001b[38;2;205;214;244m . \u001b[38;2;245;194;231m\\(\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mpath\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'*/.trash/*'\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mo\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m-\u001b[38;2;235;160;172mpath\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'*/.git/*'\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mo\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mpath\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'*/.obsidian/*'\r\n\u001b[39;2m │ \u001b[38;2;245;194;231;22m\\)\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mprune\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mo\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mtype\u001b[38;2;205;214;244m f\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mname\r\n\u001b[39;2m │ … +1 lines\r\n └ ./00 Inbox/Краткая теория с важными\r\n\u001b[0m \u001b[2mформулами по нечетким\r\n … +156 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mAGENTS.sync-conflict-20260603-110316-23DMR5O\r\n\u001b[0m \u001b[2m.md\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mНашёл много конфликтов, в том числе в \u001b[36m04\r\n\u001b[0m \u001b[36mTools/\u001b[0m и \u001b[36m.stversions/\u001b[0m, которые не описаны в\r\n границах записи проекта. Сейчас классифицирую\r\n без вывода приватного содержимого: есть ли\r\n оригинал, совпадает ли файл байт-в-байт, и\r\n какой масштаб diff.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m<<\u001b[38;2;166;227;161m'\u001b[38;2;203;166;247mPY\u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mimport re, subprocess, json\r\n\u001b[39;2m │ … +100 lines\r\n └ TOTAL 140\r\n\u001b[0m \u001b[2mSTATUS {'missing-original': 110,\r\n … +162 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mРоссии.sync-conflict-20260603-110335-23DMR5O\r\n\u001b[0m \u001b[2m.md | lines=62\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mПредварительно: конфликтов 140. Из них 30\r\n имеют оригинал и отличаются, 110 не имеют пары\r\n с нормальным именем. Проверяю, отличаются ли\r\n 30 файлов реальным текстом или только\r\n frontmatter/метаданными.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m<<\u001b[38;2;166;227;161m'\u001b[38;2;203;166;247mPY\u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mimport re, yaml, difflib\r\n\u001b[39;2m │ … +48 lines\r\n └ path | body_same | orig updated/status/title\r\n\u001b[0m \u001b[2m-> conflict updated/status/title\r\n … +66 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mbody_same=False | 2026-02-27/None/None ->\r\n\u001b[0m \u001b[2m2026-02-27/None/21.02.26 - Saturday\r\n\r\n\u001b[31;22m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput\r\n without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput\r\n without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput\r\n without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mdiff\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mu\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Other/Гайд на\r\n\u001b[39;2m └ --- \"90 Library/Other/Гайд на научников.md\"\r\n\u001b[0m \u001b[2m2026-05-31 10:33:40.528971626 +0300\r\n … +34 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mреакция со стороны Домашовой.\r\n\r\n\r\n\u001b[31;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mdiff\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mu\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Linux/File\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mPermissions.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Linux/File\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mPermissions.sync-conflict-20260603-110333-\r\n\u001b[39;2m │ … +1 lines\r\n └ --- \"90 Library/Linux/File Permissions.md\"\r\n\u001b[0m \u001b[2m2026-05-31 10:15:04.965461726 +0300\r\n … +29 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m-- [[Linux - MOC]]\r\n\u001b[0m \u001b[2m+- [[Linux]]\r\n\r\n\u001b[31;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mdiff\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mu\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'AGENTS.md'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22m'AGENTS.sync-conflict-20260603-110316-23DM\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mR5O.md'\r\n\u001b[39;2m └ --- AGENTS.md 2026-06-02\r\n\u001b[0m \u001b[2m17:00:01.884413534 +0300\r\n … +109 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mответ. Цитировать через `[[links]]`. Если\r\n\u001b[0m \u001b[2mответа в vault нет — сказать явно.\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m INDEX.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\r\n\u001b[39;2m └ .claude/\r\n\u001b[0m \u001b[2m.git/\r\n … +21 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mINDEX.sync-conflict-20260603-110335-23DMR5O.\r\n\u001b[0m \u001b[2mmd 72.2K\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git status\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mshort\r\n\u001b[39;2m └ M .obsidian/workspace.json\r\n\u001b[0m \u001b[2mStudyTracker/\r\n\u001b[0m \u001b[2m🛠️ Неоконченные\r\n\u001b[0m \u001b[2mзаметки.sync-conflict-20260603-110335-23DMR5\r\n\u001b[0m \u001b[2mO.md 1.5K\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'Михаил Никитин\\|Ruby -\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mмассивы\\|Сканер отпечатка\\|Краткая теория\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mс важными формулами\\|INDEX.sync-conflict'\r\n\u001b[39;2m │ … +1 lines\r\n └ 3 matches in 1F:\r\n\r\n … +7 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mНикитин | seed | contact | [contact] |...\r\n\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'Михаил Никитин\\|Ruby -\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mмассивы\\|Сканер отпечатка\\|Краткая теория\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mс важными формулами'\r\n\u001b[39;2m │ … +2 lines\r\n └ 5 matches in 1F:\r\n\r\n … +15 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mconcept | —...\r\n\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m INDEX.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99 System/Archive/04 Tools'\r\n\u001b[39;2m └ StudyTracker/\r\n\u001b[0m \u001b[2m🛠️ Неоконченные заметки.md 1.5K\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99 System/Archive/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mSocialBase/02 Друзья'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m|\u001b[38;2;205;214;244m \u001b[38;2;137;180;250msed\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'1,30p'\r\n\u001b[39;2m └ Андрей Лахин.md 1.2K\r\n\u001b[0m \u001b[2mАнна Забелина.md 1.1K\r\n … +10 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mНикита Дробышевский.md 1.3K\r\n\u001b[0m \u001b[2mТимофей Боков.md 1.2K\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Programming'\r\n\u001b[39;2m └ Python/\r\n\u001b[0m \u001b[2mRuby/\r\n … +7 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mязыка.sync-conflict-20260603-110335-23DMR5O.\r\n\u001b[0m \u001b[2mmd 7.1K\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mКлючевая картина: часть «missing original» не\r\n потерянные файлы, а старые пути. Например, \u001b[36m04\r\n\u001b[0m \u001b[36mTools/...\u001b[0m уже лежит в \u001b[36m99 System/Archive/...\u001b[0m, а\r\n \u001b[36mRuby - массивы\u001b[0m уже лежит в \u001b[36m90 Library/\r\n\u001b[0m \u001b[36mProgramming/Ruby/\u001b[0m. Проверяю совпадения по\r\n имени и содержимому, чтобы не воскресить\r\n старую структуру.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m<<\u001b[38;2;166;227;161m'\u001b[38;2;203;166;247mPY\u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mimport re, hashlib\r\n\u001b[39;2m │ … +58 lines\r\n └ MISSING_WITH_SAME_NAME 84 of 110\r\n\u001b[0m \u001b[2mSAME_CONTENT\r\n … +125 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mРоссии.sync-conflict-20260603-110335-23DMR5O\r\n\u001b[0m \u001b[2m.md\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mОсталось понять 26 файлов без совпадения по\r\n имени. Это либо новые заметки, либо старые\r\n MOC/архивные имена после переименования.\r\n Проверяю по \u001b[36mtitle\u001b[0m/aliases в текущем индексе.\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m<<\u001b[38;2;166;227;161m'\u001b[38;2;203;166;247mPY\u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mimport re, yaml\r\n\u001b[39;2m │ … +65 lines\r\n └ Traceback (most recent call last):\r\n\u001b[0m \u001b[2m File \"\", line 31, in \r\n\u001b[0m \u001b[2m File \"\", line 31, in \r\n\u001b[0m \u001b[2mAttributeError: 'tuple' object has no\r\n\u001b[0m \u001b[2mattribute 'name'\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mВ скрипте анализа была ошибка в проверке\r\n кортежа, поправляю и повторяю.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m<<\u001b[38;2;166;227;161m'\u001b[38;2;203;166;247mPY\u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mimport re, yaml\r\n\u001b[39;2m │ … +66 lines\r\n └\r\n\u001b[0m \u001b[2mCONFLICT 00 Inbox/Краткая теория с важными\r\n … +107 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mwanted: Налогообложение в России\r\n\u001b[0m \u001b[2m -> no title/alias match\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mПо совпадениям: 84 из 110 «без оригинала» уже\r\n имеют нормальные версии в архиве/новых папках,\r\n но содержимое отличается метаданными/ссылками.\r\n Для 26 совпадения нет, проверяю их как\r\n потенциально удалённые или новые.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'Linux - MOC\\|Kubernetes -\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mMOC\\|VLAN\\|Router-on-a-Stick\\|База\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mинвестора\\|Налогообложение в России\\|\r\n\u001b[39;2m │ … +4 lines\r\n └ 20 matches in 1F:\r\n\r\n … +27 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m| VLAN - Полная Настройка Cisco | stable ...\r\n\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'Linux\\|Kubernetes\\|VLAN\\|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mRouter-on-a-Stick\\|База инвестора\\|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mНалогообложение в России\\|Теория\r\n\u001b[39;2m │ … +5 lines\r\n └ 81 matches in 1F:\r\n\r\n … +35 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2m... +56\r\n\r\n\u001b[31;22m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput\r\n without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput\r\n without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput\r\n without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mdiff\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mu\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99 System/Archive/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mSocialBase/02 Друзья/Михаил Никитин.md'\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mdiff\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mu\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Programming/Ruby/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mRuby - массивы.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mProgramming/Ruby -\r\n\u001b[39;2m │ … +2 lines\r\n └ --- \"90 Library/Programming/Ruby/Ruby -\r\n\u001b[0m \u001b[2mмассивы.md\" 2026-06-03 14:03:15.701270400\r\n … +32 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m ## Создание массива\r\n\r\n\r\n\u001b[31;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mdiff\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mu\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Linux/Linux -\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mMOC.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Linux/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mLinux.sync-conflict-20260603-110335-23DMR5\r\n\u001b[39;2m │ … +1 lines\r\n └ --- \"90 Library/Linux/Linux - MOC.md\"\r\n\u001b[0m \u001b[2m2026-06-03 14:03:27.356398900 +0300\r\n … +24 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m %% Begin Waypoint %%\r\n\u001b[0m \u001b[2m - [[Command Help]]\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Антихрупкость.sync-conflict-20260603-\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'Основы сетевых\\|Курс по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mDevOps\\|Data Science с нуля\\|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mАнтихрупкость\\|Психология денег'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99\r\n\u001b[39;2m │ … +1 lines\r\n └ 1 matches in 1F:\r\n\r\n … +3 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mуправляема...\r\n\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99 System/Archive/04 Tools/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mStudyTracker/Books'\r\n\u001b[39;2m └ Books.md 1.4K\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mНашёл особый случай: индивидуальные\r\n \u001b[36mStudyTracker\u001b[0m-книги/курсы есть только как\r\n conflict-файлы, в архиве есть только MOC-\r\n страницы. Их удаление может потерять заметки с\r\n цитатами и прогрессом, поэтому вынесу это\r\n отдельным пунктом плана.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m 03 Journal.sync-conflict-20260603-\r\n\u001b[2m \u001b[0m110335-\r\n 23DMR5O.md\u001b[2m, \u001b[0mCourses.md\u001b[2m, \u001b[0mBooks.md\r\n\r\n\u001b[2m• \u001b[0mUpdated Plan\r\n\u001b[2m └ \u001b[0m✔ \u001b[2;9mНайти sync-conflict файлы\r\n\u001b[0m ✔ \u001b[2;9mСопоставить с оригиналами и diff\r\n\u001b[0m □ \u001b[36;1mПредложить план разрешения\r\n\u001b[0m □ \u001b[2mПосле подтверждения внести правки и\r\n\u001b[0m \u001b[2mобновить INDEX\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mНашёл \u001b[36m140\u001b[0m конфликтов.\r\n\r\n План разрешения:\r\n\r\n \u001b[94m1. \u001b[36mkeep-original\u001b[0m для \u001b[36m30\u001b[0m файлов, где оригинал\r\n существует.\r\n Конфликтные версии старее: старый \u001b[36mINDEX.md\r\n\u001b[0m вместо \u001b[36m99 System/INDEX.md\u001b[0m, старые\r\n wikilinks, старый frontmatter.\r\n\r\n \u001b[94m2. \u001b[0mУдалить конфликтные дубликаты старых путей\r\n для \u001b[36m97\u001b[0m файлов.\r\n Это в основном старые \u001b[36m04 Tools/...\u001b[0m, старые\r\n MOC без \u001b[36m- MOC\u001b[0m, старые \u001b[36mRuby - массивы\u001b[0m вне\r\n подпапки. Актуальные версии уже есть в \u001b[36m99\r\n\u001b[0m - \u001b[36m00 Inbox/Краткая теория с важными\r\n\u001b[0m \u001b[36mформулами по нечетким выводам.md\r\n\r\n\u001b[0m - \u001b[36m04 Tools/StudyTracker/Books/*.md\u001b[0m — 8\r\n\r\n \u001b[94m5. \u001b[0mОбновить \u001b[36m99 System/INDEX.md\u001b[0m.\r\n\r\n Подтверди: делать по этому плану?\r\n\r\n\u001b[2m─ Worked for 3m 36s ────────────────────────────\r\n\r\n\u001b[48;5;237;22m\u001b[48X\r\n\u001b[1;2m› \u001b[22;22mдавай\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[31m■ Conversation interrupted - tell the model what\r\nto do differently. Something went wrong? Hit `/\r\nfeedback` to report the issue.\r\n\u001b[0mToken usage: total=78 141 input=68 979 (+ 1 043 840 cached) output=9 162 (reasoning 2 465)\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32mcodex\r\n\u001b[0m󰖟 Proxy enabled (127.0.0.1:2080)\r\nWARNING: failed to clean up stale arg0 temp dirs: Permission denied (os error 13)\r\n\u001b[2m╭───────────────────────────────────────────────\r\n──╮\r\n│ \u001b[36;22m✨ Update available!\u001b[0m \u001b[1m0.135.0 -> 0.136.0\r\n\u001b[22;2m│\r\n│ \u001b[0mSee \u001b[36;4mhttps://github.com/openai/codex\u001b[0m for\r\n\u001b[2m│\r\n│ \u001b[0minstallation options.\r\n\u001b[2m│\r\n│\r\n│\r\n│ \u001b[0mSee full release notes:\r\n\u001b[2m│\r\n│ \u001b[36;4;22mhttps://github.com/openai/codex/releases/latest\u001b[39;24;2m │\r\n╰───────────────────────────────────────────────\r\n──╯\r\n\r\n╭────────────────────────────────────────────╮\r\n│ >_ \u001b[0mOpenAI Codex\u001b[2m (v0.135.0) │\r\n│ │\r\n│ model: \u001b[0mgpt-5.5 high\u001b[2m \u001b[36;22m/model\u001b[39;2m to change │\r\n│ directory: \u001b[0m~/Documents/Vaults/SecondBrain\u001b[2m │\r\n╰────────────────────────────────────────────╯\r\n\r\n\u001b[0m \u001b[1mTip:\u001b[0m Press Tab to queue a message when a task\r\n is running; otherwise it sends immediately\r\n (except \u001b[36m!\u001b[0m).\r\n\r\n\u001b[33m⚠ MCP client for `codex_apps` failed to start:\r\n\u001b[0m \u001b[33mMCP startup failed: handshaking with MCP\r\n\u001b[0m \u001b[33mserver failed: Send message error Transport\r\n\u001b[0m \u001b[33m[rmcp::transport::worker::WorkerTransport>]\r\n\u001b[0m \u001b[33merror: Client error: HTTP request failed:\r\n\u001b[0m \u001b[33mhttp/request failed: error sending request for\r\n\u001b[0m \u001b[33murl\r\n\u001b[0m \u001b[33m(https://chatgpt.com/backend-api/wham/apps),\r\n\u001b[0m \u001b[33mwhen send initialize request\r\n\r\n⚠ MCP startup incomplete (failed: codex_apps)\r\n\r\n\u001b[39;48;5;237m \u001b[47X\r\n\u001b[1m›\u001b[22m \u001b[2mFind and fix a bug in @filename\r\n\u001b[0m * Restored history at Thu Jun 04 2026 08:56:43 GMT+0300 (Москва, стандартное время)\u001b[38;2;171;223;167mSecondBrain\r\n\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32mcodex\r\n\u001b[0m󰖟 Proxy enabled (127.0.0.1:2080)\r\nWARNING: failed to clean up stale arg0 temp dirs: Permission denied (os error 13)\r\n\u001b[2m│ \u001b[36;4;22mhttps://github.com/openai/codex/releases/latest\u001b[39;24;2m │\r\n╰───────────────────────────────────────────────\r\n──╯\r\n│ >_ \u001b[1;22mOpenAI Codex\u001b[22;2m (v0.135.0) │\r\n│ │\r\n\u001b[48;5;238;22m тесте) и ссылку на заметку с подробным\u001b[8X\r\n раскрытием темы\r\n Притом, цель - сделать html/pdf файл с\r\n оглавлением по темам, оглавление переносит на\r\n самом низу), и в ней есть ссылка обратно на\r\n коротку заметку\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[31m■ Conversation interrupted - tell the model what\r\nto do differently. Something went wrong? Hit `/\r\nfeedback` to report the issue.\r\n\r\n\u001b[39;48;5;238m\u001b[48X\r\n каждой теме сделать краткий конспект (прям\r\n самое важное для темы, что могут спросить в\r\n тесте) и ссылку на заметку с подробным\r\n раскрытием темы\r\n Притом, цель - сделать html/pdf файл с\r\n оглавлением по темам, оглавление переносит на\r\n блок с краткой информацией, а в нем ссылка на\r\n подробную заметку (подробные заметки идут в\r\n самом низу), и в ней есть ссылка обратно на\r\n коротку заметку. Делаем файлик для подготовки\r\n к эзамену (информация по блоку 2 и дальше уже\r\n есть, блок 1 как раз новая лекция вот эта)\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[2m• \u001b[0mСначала прочитаю индекс, файл подготовки и\r\n извлеку текст из PDF, чтобы план был\r\n конкретным. Правки пока не вношу: это массовый\r\n ingest/workflow, после плана дождусь\r\n подтверждения.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpwd\r\n\u001b[39;2m └ /home/ada/Documents/Vaults/SecondBrain\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Подготовка к экзамену по Веб-\r\n\u001b[2m \u001b[0mРазработке.md\u001b[2m,\r\n\u001b[0m INDEX.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"00 Inbox\"\r\n\u001b[39;2m └ 00_базовые_понятия.pdf 967.5K\r\n\u001b[0m \u001b[2mПодготовка к экзамену по Веб-Разработке.md\r\n\u001b[0m \u001b[2m7.5K\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mФайл подготовки содержит 12 блоков; блок 1\r\n закрывается новой PDF-лекцией, блоки 2+ уже\r\n есть как темы экзамена. Сейчас извлеку текст\r\n PDF и найду существующие заметки по HTML/CSS/\r\n Django, чтобы понять, что создавать, а что\r\n только связать.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mwhich\u001b[38;2;205;214;244m pdftotext\r\n\u001b[39;2m └ /usr/bin/pdftotext\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"HTML|CSS|Django|HTTP|IPv4|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mIPv6|DNS|OAuth|Flex|Grid|QuerySet|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mModelForm|URL|URI\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99 System/INDEX.md\"\r\n\u001b[39;2m └ 9 matches in 5F:\r\n\r\n … +23 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mформы)]] | Основы HTML (структура, табли...\r\n\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdfinfo\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"00 Inbox/00_базовые_понятия.pdf\"\r\n\u001b[39;2m └ Title: Презентация PowerPoint\r\n\u001b[0m \u001b[2mAuthor: Natalie Lukianova\r\n … +17 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mOptimized: no\r\n\u001b[0m \u001b[2mPDF version: 1.7\r\n\r\n◦\u001b[1CWorking\u001b[1C(21s • esc to interrupt)\r\n\r\n\u001b[48;5;238;22m \u001b[47X\r\n\u001b[1m›\u001b[22m \u001b[2mSummarize recent commits\r\n\u001b[22m \r\n\u001b[0m\u001b[2X\u001b[2C\u001b[38;2;246;226;183mgpt-5.5 high\u001b[39;2m · \u001b[38;2;171;223;167;22m~/Documents/Vaults/SecondBrain\u001b[1X\u001b[2A\u001b[45D\u001b[0m", + "data": "\u001b[2m │ \u001b[38;2;166;227;161;22mimport re, yaml\r\n\u001b[39;2m │ … +65 lines\r\n └ Traceback (most recent call last):\r\n\u001b[0m \u001b[2m File \"\", line 31, in \r\n\u001b[0m \u001b[2m File \"\", line 31, in \r\n\u001b[0m \u001b[2mAttributeError: 'tuple' object has no\r\n\u001b[0m \u001b[2mattribute 'name'\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mВ скрипте анализа была ошибка в проверке\r\n кортежа, поправляю и повторяю.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m<<\u001b[38;2;166;227;161m'\u001b[38;2;203;166;247mPY\u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mimport re, yaml\r\n\u001b[39;2m │ … +66 lines\r\n └\r\n\u001b[0m \u001b[2mCONFLICT 00 Inbox/Краткая теория с важными\r\n … +107 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mwanted: Налогообложение в России\r\n\u001b[0m \u001b[2m -> no title/alias match\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mПо совпадениям: 84 из 110 «без оригинала» уже\r\n имеют нормальные версии в архиве/новых папках,\r\n но содержимое отличается метаданными/ссылками.\r\n Для 26 совпадения нет, проверяю их как\r\n потенциально удалённые или новые.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'Linux - MOC\\|Kubernetes -\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mMOC\\|VLAN\\|Router-on-a-Stick\\|База\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mинвестора\\|Налогообложение в России\\|\r\n\u001b[39;2m │ … +4 lines\r\n └ 20 matches in 1F:\r\n\r\n … +27 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m| VLAN - Полная Настройка Cisco | stable ...\r\n\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'Linux\\|Kubernetes\\|VLAN\\|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mRouter-on-a-Stick\\|База инвестора\\|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mНалогообложение в России\\|Теория\r\n\u001b[39;2m │ … +5 lines\r\n └ 81 matches in 1F:\r\n\r\n … +35 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2m... +56\r\n\r\n\u001b[31;22m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput\r\n without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput\r\n without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput\r\n without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mdiff\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mu\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99 System/Archive/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mSocialBase/02 Друзья/Михаил Никитин.md'\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mdiff\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mu\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Programming/Ruby/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mRuby - массивы.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mProgramming/Ruby -\r\n\u001b[39;2m │ … +2 lines\r\n └ --- \"90 Library/Programming/Ruby/Ruby -\r\n\u001b[0m \u001b[2mмассивы.md\" 2026-06-03 14:03:15.701270400\r\n … +32 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m ## Создание массива\r\n\r\n\r\n\u001b[31;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mdiff\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mu\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Linux/Linux -\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mMOC.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Linux/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mLinux.sync-conflict-20260603-110335-23DMR5\r\n\u001b[39;2m │ … +1 lines\r\n └ --- \"90 Library/Linux/Linux - MOC.md\"\r\n\u001b[0m \u001b[2m2026-06-03 14:03:27.356398900 +0300\r\n … +24 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m %% Begin Waypoint %%\r\n\u001b[0m \u001b[2m - [[Command Help]]\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Антихрупкость.sync-conflict-20260603-\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'Основы сетевых\\|Курс по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mDevOps\\|Data Science с нуля\\|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mАнтихрупкость\\|Психология денег'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99\r\n\u001b[39;2m │ … +1 lines\r\n └ 1 matches in 1F:\r\n\r\n … +3 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mуправляема...\r\n\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99 System/Archive/04 Tools/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mStudyTracker/Books'\r\n\u001b[39;2m └ Books.md 1.4K\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mНашёл особый случай: индивидуальные\r\n \u001b[36mStudyTracker\u001b[0m-книги/курсы есть только как\r\n conflict-файлы, в архиве есть только MOC-\r\n страницы. Их удаление может потерять заметки с\r\n цитатами и прогрессом, поэтому вынесу это\r\n отдельным пунктом плана.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m 03 Journal.sync-conflict-20260603-\r\n\u001b[2m \u001b[0m110335-\r\n 23DMR5O.md\u001b[2m, \u001b[0mCourses.md\u001b[2m, \u001b[0mBooks.md\r\n\r\n\u001b[2m• \u001b[0mUpdated Plan\r\n\u001b[2m └ \u001b[0m✔ \u001b[2;9mНайти sync-conflict файлы\r\n\u001b[0m ✔ \u001b[2;9mСопоставить с оригиналами и diff\r\n\u001b[0m □ \u001b[36;1mПредложить план разрешения\r\n\u001b[0m □ \u001b[2mПосле подтверждения внести правки и\r\n\u001b[0m \u001b[2mобновить INDEX\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mНашёл \u001b[36m140\u001b[0m конфликтов.\r\n\r\n План разрешения:\r\n\r\n \u001b[94m1. \u001b[36mkeep-original\u001b[0m для \u001b[36m30\u001b[0m файлов, где оригинал\r\n существует.\r\n Конфликтные версии старее: старый \u001b[36mINDEX.md\r\n\u001b[0m вместо \u001b[36m99 System/INDEX.md\u001b[0m, старые\r\n wikilinks, старый frontmatter.\r\n\r\n \u001b[94m2. \u001b[0mУдалить конфликтные дубликаты старых путей\r\n для \u001b[36m97\u001b[0m файлов.\r\n Это в основном старые \u001b[36m04 Tools/...\u001b[0m, старые\r\n MOC без \u001b[36m- MOC\u001b[0m, старые \u001b[36mRuby - массивы\u001b[0m вне\r\n подпапки. Актуальные версии уже есть в \u001b[36m99\r\n\u001b[0m - \u001b[36m00 Inbox/Краткая теория с важными\r\n\u001b[0m \u001b[36mформулами по нечетким выводам.md\r\n\r\n\u001b[0m - \u001b[36m04 Tools/StudyTracker/Books/*.md\u001b[0m — 8\r\n\r\n \u001b[94m5. \u001b[0mОбновить \u001b[36m99 System/INDEX.md\u001b[0m.\r\n\r\n Подтверди: делать по этому плану?\r\n\r\n\u001b[2m─ Worked for 3m 36s ────────────────────────────\r\n\r\n\u001b[48;5;237;22m\u001b[48X\r\n\u001b[1;2m› \u001b[22;22mдавай\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[31m■ Conversation interrupted - tell the model what\r\nto do differently. Something went wrong? Hit `/\r\nfeedback` to report the issue.\r\n\u001b[0mToken usage: total=78 141 input=68 979 (+ 1 043 840 cached) output=9 162 (reasoning 2 465)\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32mcodex\r\n\u001b[0m󰖟 Proxy enabled (127.0.0.1:2080)\r\nWARNING: failed to clean up stale arg0 temp dirs: Permission denied (os error 13)\r\n\u001b[2m╭───────────────────────────────────────────────\r\n──╮\r\n│ \u001b[36;22m✨ Update available!\u001b[0m \u001b[1m0.135.0 -> 0.136.0\r\n\u001b[22;2m│\r\n│ \u001b[0mSee \u001b[36;4mhttps://github.com/openai/codex\u001b[0m for\r\n\u001b[2m│\r\n│ \u001b[0minstallation options.\r\n\u001b[2m│\r\n│\r\n│\r\n│ \u001b[0mSee full release notes:\r\n\u001b[2m│\r\n│ \u001b[36;4;22mhttps://github.com/openai/codex/releases/latest\u001b[39;24;2m │\r\n╰───────────────────────────────────────────────\r\n──╯\r\n\r\n╭────────────────────────────────────────────╮\r\n│ >_ \u001b[0mOpenAI Codex\u001b[2m (v0.135.0) │\r\n│ │\r\n│ model: \u001b[0mgpt-5.5 high\u001b[2m \u001b[36;22m/model\u001b[39;2m to change │\r\n│ directory: \u001b[0m~/Documents/Vaults/SecondBrain\u001b[2m │\r\n╰────────────────────────────────────────────╯\r\n\r\n\u001b[0m \u001b[1mTip:\u001b[0m Press Tab to queue a message when a task\r\n is running; otherwise it sends immediately\r\n (except \u001b[36m!\u001b[0m).\r\n\r\n\u001b[33m⚠ MCP client for `codex_apps` failed to start:\r\n\u001b[0m \u001b[33mMCP startup failed: handshaking with MCP\r\n\u001b[0m \u001b[33mserver failed: Send message error Transport\r\n\u001b[0m \u001b[33m[rmcp::transport::worker::WorkerTransport>]\r\n\u001b[0m \u001b[33merror: Client error: HTTP request failed:\r\n\u001b[0m \u001b[33mhttp/request failed: error sending request for\r\n\u001b[0m \u001b[33murl\r\n\u001b[0m \u001b[33m(https://chatgpt.com/backend-api/wham/apps),\r\n\u001b[0m \u001b[33mwhen send initialize request\r\n\r\n⚠ MCP startup incomplete (failed: codex_apps)\r\n\r\n\u001b[39;48;5;237m \u001b[47X\r\n\u001b[1m›\u001b[22m \u001b[2mFind and fix a bug in @filename\r\n\u001b[0m * Restored history at Thu Jun 04 2026 08:56:43 GMT+0300 (Москва, стандартное время)\u001b[38;2;171;223;167mSecondBrain\r\n\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32mcodex\r\n\u001b[0m󰖟 Proxy enabled (127.0.0.1:2080)\r\nWARNING: failed to clean up stale arg0 temp dirs: Permission denied (os error 13)\r\n\u001b[2m│ \u001b[36;4;22mhttps://github.com/openai/codex/releases/latest\u001b[39;24;2m │\r\n╰───────────────────────────────────────────────\r\n──╯\r\n│ >_ \u001b[1;22mOpenAI Codex\u001b[22;2m (v0.135.0) │\r\n│ │\r\n\u001b[48;5;238;22m тесте) и ссылку на заметку с подробным\u001b[8X\r\n раскрытием темы\r\n Притом, цель - сделать html/pdf файл с\r\n оглавлением по темам, оглавление переносит на\r\n самом низу), и в ней есть ссылка обратно на\r\n коротку заметку\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[31m■ Conversation interrupted - tell the model what\r\nto do differently. Something went wrong? Hit `/\r\nfeedback` to report the issue.\r\n\r\n\u001b[39;48;5;238m\u001b[48X\r\n каждой теме сделать краткий конспект (прям\r\n самое важное для темы, что могут спросить в\r\n тесте) и ссылку на заметку с подробным\r\n раскрытием темы\r\n Притом, цель - сделать html/pdf файл с\r\n оглавлением по темам, оглавление переносит на\r\n блок с краткой информацией, а в нем ссылка на\r\n подробную заметку (подробные заметки идут в\r\n самом низу), и в ней есть ссылка обратно на\r\n коротку заметку. Делаем файлик для подготовки\r\n к эзамену (информация по блоку 2 и дальше уже\r\n есть, блок 1 как раз новая лекция вот эта)\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[2m• \u001b[0mСначала прочитаю индекс, файл подготовки и\r\n извлеку текст из PDF, чтобы план был\r\n конкретным. Правки пока не вношу: это массовый\r\n ingest/workflow, после плана дождусь\r\n подтверждения.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpwd\r\n\u001b[39;2m └ /home/ada/Documents/Vaults/SecondBrain\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Подготовка к экзамену по Веб-\r\n\u001b[2m \u001b[0mРазработке.md\u001b[2m,\r\n\u001b[0m INDEX.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"00 Inbox\"\r\n\u001b[39;2m └ 00_базовые_понятия.pdf 967.5K\r\n\u001b[0m \u001b[2mПодготовка к экзамену по Веб-Разработке.md\r\n\u001b[0m \u001b[2m7.5K\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mФайл подготовки содержит 12 блоков; блок 1\r\n закрывается новой PDF-лекцией, блоки 2+ уже\r\n есть как темы экзамена. Сейчас извлеку текст\r\n PDF и найду существующие заметки по HTML/CSS/\r\n Django, чтобы понять, что создавать, а что\r\n только связать.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"HTML|CSS|Django|HTTP|IPv4|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mIPv6|DNS|OAuth|Flex|Grid|QuerySet|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mModelForm|URL|URI\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99 System/INDEX.md\"\r\n\u001b[39;2m └ 9 matches in 5F:\r\n\r\n … +23 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mформы)]] | Основы HTML (структура, табли...\r\n\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdfinfo\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"00 Inbox/00_базовые_понятия.pdf\"\r\n\u001b[39;2m └ Title: Презентация PowerPoint\r\n\u001b[0m \u001b[2mAuthor: Natalie Lukianova\r\n … +17 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mOptimized: no\r\n\u001b[0m \u001b[2mPDF version: 1.7\r\n\r\n └ Базовые механизмы взаимодействия в\r\n\u001b[0m \u001b[2m веб-среде\r\n … +893 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m42\r\n\u001b[0m \r\n\r\n\r\n\u001b[2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mPDF — 42 слайда про базовые механизмы веб-\r\n среды: WWW, HTTP, запрос/ответ, HTTPS, HTTP/3,\r\n IP/DNS/NAT/localhost, порты, URI/URL/URN,\r\n auth/OAuth. Теперь проверю шаблон и\r\n существующие заметки, чтобы не плодить дубли.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Base Note.md\u001b[2m, \u001b[0mОсновы, селекторы и\r\n\u001b[2m \u001b[0mблочная\r\n модель.md\u001b[2m, \u001b[0mМодели и ORM.md\u001b[2m, \u001b[0mЭкзамен\r\n - Веб-\r\n ориентированные системы.md\u001b[2m, \u001b[0mОсновы HTML\r\n (структура, таблицы, формы).md\u001b[2m,\r\n\u001b[0m Представления, шаблоны и CBV.md\u001b[2m, \u001b[0mРабота\r\n с\r\n формами и CUD.md\u001b[2m, \u001b[0mАдаптивность, Flexbox\r\n и\r\n Grid.md\r\n\r\n\u001b[2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mПлан перед массовыми правками:\r\n\r\n \u001b[94m1. \u001b[0mИзвлечь PDF \u001b[36m00_базовые_понятия.pdf\u001b[0m и\r\n оформить блок 1 в подробные материалы по\r\n темам: IP/IPv4/IPv6, TCP, подсети/NAT/\r\n localhost, DNS, HTTP/HTTPS/HTTP/3, порты,\r\n URI/URL/URN, идентификация/аутентификация/\r\n авторизация, OAuth 2.0.\r\n\r\n \u001b[94m2. \u001b[0mИспользовать существующие заметки как\r\n \u001b[36mАдаптивность, Flexbox и Grid\u001b[0m, \u001b[36mDjango:\r\n\u001b[0m \u001b[36mМодели и ORM\u001b[0m, \u001b[36mDjango: Представления,\r\n\u001b[0m \u001b[36mшаблоны и CBV\u001b[0m, \u001b[36mDjango: Формы и CUD\u001b[0m.\r\n\r\n \u001b[94m3. \u001b[0mСоздать один файл подготовки в \u001b[36m90 Library/\r\n\u001b[0m якорями внутри HTML: кратко → подробно,\r\n подробно → обратно.\r\n\r\n \u001b[94m4. \u001b[0mСгенерировать PDF из HTML, если в системе\r\n есть рабочий HTML→PDF инструмент; если нет\r\n — оставлю HTML и явно скажу, чем PDF не\r\n собрался.\r\n\r\n \u001b[94m5. \u001b[0mОбновить \u001b[36m99 System/INDEX.md\u001b[0m.\r\n \u001b[94m6. \u001b[0mАрхивировать исходники из Inbox в \u001b[36m99\r\n\u001b[0m \u001b[36mSystem/Archive/\u001b[0m после обработки.\r\n\r\n Подтверди, и я внесу правки.\r\n\r\n\u001b[2m─ Worked for 1m 07s ────────────────────────────\r\n\r\n\u001b[48;5;238;22m\u001b[48X\r\n\u001b[1;2m› \u001b[22;22mНу давай, да\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[2m• \u001b[0mПриступаю к правкам. Сначала сохраню\r\n извлечённый текст PDF во временный файл и\r\n проверю структуру лекции, затем создам/дополню\r\n заметки и соберу HTML.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m IP-адрес.md\u001b[2m, \u001b[0mDNS.md\u001b[2m, \u001b[0mTCP vs UDP.md\r\n\u001b[2m │ \u001b[38;2;166;227;161;22mСетевые порты|URI|URL|URN|Идентификация|\r\n\u001b[39;2m │ … +2 lines\r\n └ rg: /tmp/web_base_lecture.txt: IO error for\r\n\u001b[0m \u001b[2moperation on /tmp/web_base_lecture.txt: No\r\n … +3 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mСетевые порты|URI|URL|URN|Идентификация|\r\n\u001b[0m \u001b[2mOAuth|Маска|Подсети|Адресация)'\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"00\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mInbox/00_базовые_понятия.pdf\"\u001b[38;2;205;214;244m /tmp/\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22mweb_base_lecture.txt\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[0m раньше, чем появился временный текст PDF.\r\n Повторяю извлечение последовательно и дальше\r\n буду опираться на готовый файл.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"00\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mInbox/00_базовые_понятия.pdf\"\u001b[38;2;205;214;244m /tmp/\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22mweb_base_lecture.txt\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m /tmp/web_base_lecture.txt\r\n\u001b[39;2m └ /tmp/web_base_lecture.txt 74.5K\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"^ *(Протокол|HTTP|HTTPS|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mHTTP/3|IP|IPv4|IPv6|NAT|DNS|Localhost|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mСетевые порты|URI|URL|URN|Идентификация|\r\n\u001b[39;2m │ … +2 lines\r\n └ 29 matches in 6F:\r\n\r\n … +41 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 0:\r\n\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m web_base_lecture.txt\r\n\r\n\u001b[2m────────────────────────────────────────────────\r\n\u001b[0m уже была в vault, но HTTP/HTTPS/HTTP3, URI/\r\n URL/URN, порты, NAT и OAuth лучше добавить\r\n отдельными заметками, чтобы у подготовки были\r\n точные подробные цели.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m web_base_lecture.txt\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m find \u001b[38;2;166;227;161m\"90 Library/Networking\"\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mmaxdepth\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22m3\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mtype\u001b[38;2;205;214;244m f\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mname\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"*NAT*\"\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mo\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mname\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"*HTTP*\"\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m-\u001b[38;2;235;160;172mo\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mname\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"*URI*\"\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mo\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mname\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"*OAuth*\"\r\n\u001b[39;2m └ rtk: rtk find does not support compound\r\n\u001b[0m \u001b[2mpredicates or actions (e.g. -not, -exec).\r\n\u001b[0m \u001b[2mUse `find` directly.\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"NAT|HTTP|HTTPS|HTTP/3|OAuth|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mURI|URL|URN|Сетевые порты|Порты|localhost|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mLocalhost|Аутентификация|Авторизация|\r\n\u001b[39;2m │ … +2 lines\r\n └ 71 matches in 21F:\r\n\r\n … +113 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2m... +2\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m IPv6.md\u001b[2m, \u001b[0mNAT.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git status\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mshort\r\n\u001b[39;2m └ M .obsidian/workspace.json\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mСоздаю новые подробные заметки только для тем\r\n блока 1, которых не хватало как отдельных\r\n точек входа. Для уже существующих HTML/CSS/\r\n Django/сетевых заметок буду ссылаться на них,\r\n без попутного переписывания.\r\n\r\n\u001b[2m• \u001b[1;22mEdited\u001b[0m 6 files (\u001b[32m+409\u001b[0m \u001b[31m-0\u001b[0m)\r\n\u001b[2m └ \u001b[0m90 Library/Networking/OAuth 2.0.md (\u001b[32m+47\u001b[0m \u001b[31m-0\u001b[0m)\r\n\u001b[48;5;22m \u001b[2m 1 \u001b[32;22m+\u001b[38;2;147;153;178m---\u001b[37X\r\n\u001b[39m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;205;214;244mtitle: OAuth 2.0\r\n\u001b[39m \u001b[2m 3 \u001b[32;22m+\u001b[38;2;205;214;244mstatus: seed\r\n\u001b[39m \u001b[2m 4 \u001b[32;22m+\u001b[38;2;205;214;244mtype: concept\r\n\u001b[39m \u001b[2m 5 \u001b[32;22m+\u001b[38;2;205;214;244mtags: [web, security, oauth, authorizati\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mon]\r\n\u001b[39m \u001b[2m 6 \u001b[32;22m+\u001b[38;2;205;214;244mcreated: 2026-06-04\r\n\u001b[39m \u001b[2m 7 \u001b[32;22m+\u001b[38;2;205;214;244mupdated: 2026-06-04\r\n\u001b[39m \u001b[2m 8 \u001b[32;22m+\u001b[38;2;205;214;244msource: \"[[00_базовые_понятия.pdf]]\"\r\n\u001b[39m \u001b[2m 9 \u001b[32;22m+\u001b[38;2;205;214;244maliases:\r\n\u001b[39m \u001b[2m10 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m OAuth 2\r\n\u001b[39m \u001b[2m11 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m OAuth 2.0\r\n\u001b[39m \u001b[2m12 \u001b[32;22m+\u001b[38;2;147;153;178m---\r\n\u001b[39m \u001b[2m13 \u001b[32;22m+\u001b[38;2;205;214;244m# OAuth 2.0\r\n\u001b[39m \u001b[2m14 \u001b[32;22m+\r\n\u001b[39m \u001b[2m15 \u001b[32;22m+\u001b[38;2;205;214;244mOAuth 2.0 — протокол авторизации, которы\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mй позволяет приложению получить ограниче\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mнный доступ к ресурсам пользователя на д\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mругом сервисе без передачи пароля пользо\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mвателя этому приложению.\r\n\u001b[39m \u001b[2m16 \u001b[32;22m+\r\n\u001b[39m \u001b[2m17 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mГде встречается\r\n\u001b[39m \u001b[2m18 \u001b[32;22m+\r\n\u001b[39m \u001b[2m19 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m вход на сайт через Google, GitHub, VK\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mили другую внешнюю учётную запись;\r\n\u001b[39m \u001b[2m20 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m мобильное приложение получает доступ к\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m данным в облаке;\r\n\u001b[39m \u001b[2m21 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m бот или интеграция получает доступ к A\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mPI сервиса.\r\n\u001b[39m \u001b[2m22 \u001b[32;22m+\r\n\u001b[39m \u001b[2m23 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mГлавная идея\r\n\u001b[39m \u001b[2m24 \u001b[32;22m+\r\n\u001b[39m \u001b[2m25 \u001b[32;22m+\u001b[38;2;205;214;244mПользователь подтверждает доступ на стор\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mоне сервиса-владельца данных. Клиентское\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m приложение получает токен и использует\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mего для запросов к API.\r\n\u001b[39m \u001b[2m26 \u001b[32;22m+\r\n\u001b[39m \u001b[2m27 \u001b[32;22m+\u001b[38;2;205;214;244mПароль пользователя при этом остаётся у\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mсервиса-источника, а стороннее приложени\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mе получает только ограниченное разрешени\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mе.\r\n\u001b[39m \u001b[2m28 \u001b[32;22m+\r\n\u001b[39m \u001b[2m29 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mУчастники\r\n\u001b[39m \u001b[2m30 \u001b[32;22m+\r\n\u001b[39m \u001b[2m31 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Resource Owner — владелец ресурса, обы\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mчно пользователь.\r\n\u001b[39m \u001b[2m32 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Client — приложение, которому нужен до\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mступ.\r\n\u001b[39m \u001b[2m33 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Authorization Server — сервер, который\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m выдаёт токены.\r\n\u001b[39m \u001b[2m34 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Resource Server — API, который принима\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mет токен и отдаёт защищённые данные.\r\n\u001b[39m \u001b[2m35 \u001b[32;22m+\r\n\u001b[39m \u001b[2m36 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mТокены\r\n\u001b[39m \u001b[2m37 \u001b[32;22m+\r\n\u001b[39m \u001b[2m38 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Access token — используется для доступ\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mа к API.\r\n\u001b[39m \u001b[2m39 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Refresh token — используется для получ\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mения нового access token без повторного\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mвхода пользователя.\r\n\u001b[39m \u001b[2m40 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Scope — набор разрешений, ограничивающ\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mий действия клиента.\r\n\u001b[39m \u001b[2m41 \u001b[32;22m+\r\n\u001b[39m \u001b[2m42 \u001b[32;22m+\u001b[38;2;205;214;244mOAuth 2.0 — про авторизацию. Сам по себе\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m он не обязан доказывать личность пользо\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mвателя как протокол аутентификации; для\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mвхода поверх OAuth обычно используют Ope\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mnID Connect.\r\n\u001b[39m \u001b[2m43 \u001b[32;22m+\r\n\u001b[39m \u001b[2m44 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mСвязи\r\n\u001b[39m \u001b[2m45 \u001b[32;22m+\r\n\u001b[39m \u001b[2m46 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[Веб-аутентификация и авторизация]]\r\n\u001b[39m \u001b[2m47 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[HTTP, HTTPS и HTTP3]]\r\n\u001b[0m\u001b[48X\r\n\u001b[2m └ \u001b[0m90 Library/Networking/Веб-аутентификация и\r\n\u001b[2m \u001b[0mавторизация.md (\u001b[32m+44\u001b[0m \u001b[31m-0\u001b[0m)\r\n\u001b[48;5;22m \u001b[2m 1 \u001b[32;22m+\u001b[38;2;147;153;178m---\u001b[37X\r\n\u001b[39m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;205;214;244mtitle: Веб-аутентификация и авторизация\r\n\u001b[39m \u001b[2m 3 \u001b[32;22m+\u001b[38;2;205;214;244mstatus: seed\r\n\u001b[39m \u001b[2m 4 \u001b[32;22m+\u001b[38;2;205;214;244mtype: concept\r\n\u001b[39m \u001b[2m 5 \u001b[32;22m+\u001b[38;2;205;214;244mtags: [web, security, authentication, au\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mthorization, oauth]\r\n\u001b[39m \u001b[2m 6 \u001b[32;22m+\u001b[38;2;205;214;244mcreated: 2026-06-04\r\n\u001b[39m \u001b[2m 7 \u001b[32;22m+\u001b[38;2;205;214;244mupdated: 2026-06-04\r\n\u001b[39m \u001b[2m 8 \u001b[32;22m+\u001b[38;2;205;214;244msource: \"[[00_базовые_понятия.pdf]]\"\r\n\u001b[39m \u001b[2m 9 \u001b[32;22m+\u001b[38;2;205;214;244maliases:\r\n\u001b[39m \u001b[2m10 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Идентификация, аутентификация и автори\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mзация\r\n\u001b[39m \u001b[2m11 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Веб-аутентификация\r\n\u001b[39m \u001b[2m12 \u001b[32;22m+\u001b[38;2;147;153;178m---\r\n\u001b[39m \u001b[2m13 \u001b[32;22m+\u001b[38;2;205;214;244m# Веб-аутентификация и авторизация\r\n\u001b[39m \u001b[2m14 \u001b[32;22m+\r\n\u001b[39m \u001b[2m15 \u001b[32;22m+\u001b[38;2;205;214;244mИдентификация, аутентификация и авториза\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mция — разные этапы контроля доступа.\r\n\u001b[39m \u001b[2m16 \u001b[32;22m+\r\n\u001b[39m \u001b[2m17 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mТермины\r\n\u001b[39m \u001b[2m18 \u001b[32;22m+\r\n\u001b[39m \u001b[2m19 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Идентификация — пользователь сообщает,\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m кто он: логин, email, номер телефона, I\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mD.\r\n\u001b[39m \u001b[2m20 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Аутентификация — система проверяет, чт\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mо пользователь действительно тот, за ког\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mо себя выдаёт: пароль, одноразовый код,\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mключ, сертификат.\r\n\u001b[39m \u001b[2m21 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Авторизация — система решает, что уже\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mаутентифицированному пользователю разреш\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mено делать.\r\n\u001b[39m \u001b[2m22 \u001b[32;22m+\r\n\u001b[39m \u001b[2m23 \u001b[32;22m+\u001b[38;2;205;214;244mКоротко: идентификация отвечает на вопро\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mс \"кто ты?\", аутентификация — \"докажи\",\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mавторизация — \"что тебе можно?\".\r\n\u001b[39m \u001b[2m24 \u001b[32;22m+\r\n\u001b[39m \u001b[2m25 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mHTTP-аутентификация\r\n\u001b[39m \u001b[2m26 \u001b[32;22m+\r\n\u001b[39m \u001b[2m27 \u001b[32;22m+\u001b[38;2;205;214;244mРаспространённые схемы:\r\n\u001b[39m \u001b[2m28 \u001b[32;22m+\r\n\u001b[39m \u001b[2m29 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mBasic\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — логин и пароль передаются ка\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mк base64-строка. Base64 не является шифр\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mованием, поэтому Basic нельзя использова\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mть без HTTPS для чувствительных данных.\r\n\u001b[39m \u001b[2m30 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mDigest\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — схема с хешированием, истор\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mически безопаснее Basic, но сейчас испол\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mьзуется реже.\r\n\u001b[39m \u001b[2m31 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mBearer\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — клиент передаёт токен, обыч\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mно в заголовке \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mAuthorization\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m.\r\n\u001b[39m \u001b[2m32 \u001b[32;22m+\r\n\u001b[39m \u001b[2m33 \u001b[32;22m+\u001b[38;2;205;214;244mПример Bearer:\r\n\u001b[39m \u001b[2m34 \u001b[32;22m+\r\n\u001b[39m \u001b[2m35 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mhttp\r\n\u001b[39m \u001b[2m36 \u001b[32;22m+\u001b[38;2;205;214;244mAuthorization: Bearer eyJhbGciOi...\r\n\u001b[39m \u001b[2m37 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m38 \u001b[32;22m+\r\n\u001b[39m \u001b[2m39 \u001b[32;22m+\u001b[38;2;205;214;244mBearer-токен даёт доступ тому, кто им вл\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mадеет. Поэтому токены нужно хранить акку\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mратно, ограничивать срок их жизни и умет\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mь отзывать.\r\n\u001b[39m \u001b[2m40 \u001b[32;22m+\r\n\u001b[39m \u001b[2m41 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mСвязи\r\n\u001b[39m \u001b[2m42 \u001b[32;22m+\r\n\u001b[39m \u001b[2m43 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[OAuth 2.0]]\r\n\u001b[39m \u001b[2m44 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[HTTP, HTTPS и HTTP3]]\r\n\u001b[0m\u001b[48X\r\n\u001b[2m └ \u001b[0m90 Library/Networking/Подсети и маска\r\n\u001b[2m \u001b[0mподсети.md (\u001b[32m+66\u001b[0m \u001b[31m-0\u001b[0m)\r\n\u001b[48;5;22m \u001b[2m 1 \u001b[32;22m+\u001b[38;2;147;153;178m---\u001b[37X\r\n\u001b[39m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;205;214;244mtitle: Подсети и маска подсети\r\n\u001b[39m \u001b[2m 3 \u001b[32;22m+\u001b[38;2;205;214;244mstatus: seed\r\n\u001b[39m \u001b[2m 4 \u001b[32;22m+\u001b[38;2;205;214;244mtype: concept\r\n\u001b[39m \u001b[2m 5 \u001b[32;22m+\u001b[38;2;205;214;244mtags: [network, networking, subnet, ipv4\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m]\r\n\u001b[39m \u001b[2m 6 \u001b[32;22m+\u001b[38;2;205;214;244mcreated: 2026-06-04\r\n\u001b[39m \u001b[2m 7 \u001b[32;22m+\u001b[38;2;205;214;244mupdated: 2026-06-04\r\n\u001b[39m \u001b[2m 8 \u001b[32;22m+\u001b[38;2;205;214;244msource: \"[[00_базовые_понятия.pdf]]\"\r\n\u001b[39m \u001b[2m 9 \u001b[32;22m+\u001b[38;2;205;214;244maliases:\r\n\u001b[39m \u001b[2m10 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Маска подсети\r\n\u001b[39m \u001b[2m11 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Подсети\r\n\u001b[39m \u001b[2m12 \u001b[32;22m+\u001b[38;2;147;153;178m---\r\n\u001b[39m \u001b[2m13 \u001b[32;22m+\u001b[38;2;205;214;244m# Подсети и маска подсети\r\n\u001b[39m \u001b[2m14 \u001b[32;22m+\r\n\u001b[39m \u001b[2m15 \u001b[32;22m+\u001b[38;2;205;214;244mМаска подсети показывает, какая часть IP\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mv4-адреса относится к сети, а какая — к\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mхосту внутри этой сети.\r\n\u001b[39m \u001b[2m16 \u001b[32;22m+\r\n\u001b[39m \u001b[2m17 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mГлавное\r\n\u001b[39m \u001b[2m18 \u001b[32;22m+\r\n\u001b[39m \u001b[2m19 \u001b[32;22m+\u001b[38;2;205;214;244mIPv4-адрес состоит из 32 бит. Без маски\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mнельзя однозначно понять, где заканчивае\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mтся номер сети и начинается номер хоста.\r\n\u001b[39m \u001b[2m20 \u001b[32;22m+\r\n\u001b[39m \u001b[2m21 \u001b[32;22m+\u001b[38;2;205;214;244mПример:\r\n\u001b[39m \u001b[2m22 \u001b[32;22m+\r\n\u001b[39m \u001b[2m23 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mtext\r\n\u001b[39m \u001b[2m24 \u001b[32;22m+\u001b[38;2;205;214;244mIP: 192.168.123.132\r\n\u001b[39m \u001b[2m25 \u001b[32;22m+\u001b[38;2;205;214;244mМаска: 255.255.255.0\r\n\u001b[39m \u001b[2m26 \u001b[32;22m+\u001b[38;2;205;214;244mCIDR: /24\r\n\u001b[39m \u001b[2m27 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m28 \u001b[32;22m+\r\n\u001b[39m \u001b[2m29 \u001b[32;22m+\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m/24\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m означает, что первые 24 бита — сет\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mь, оставшиеся 8 бит — хосты.\r\n\u001b[39m \u001b[2m30 \u001b[32;22m+\r\n\u001b[39m \u001b[2m31 \u001b[32;22m+\u001b[38;2;205;214;244mДля примера выше:\r\n\u001b[39m \u001b[2m32 \u001b[32;22m+\r\n\u001b[39m \u001b[2m33 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m адрес сети: \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m192.168.123.0\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m;\r\n\u001b[39m \u001b[2m34 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m часть хоста: \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m0.0.0.132\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m;\r\n\u001b[39m \u001b[2m35 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m маска: \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m255.255.255.0\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m.\r\n\u001b[39m \u001b[2m36 \u001b[32;22m+\r\n\u001b[39m \u001b[2m37 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mCIDR\r\n\u001b[39m \u001b[2m38 \u001b[32;22m+\r\n\u001b[39m \u001b[2m39 \u001b[32;22m+\u001b[38;2;205;214;244mCIDR-запись \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m/N\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m показывает количество е\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mдиниц в маске.\r\n\u001b[39m \u001b[2m40 \u001b[32;22m+\r\n\u001b[39m \u001b[2m41 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m CIDR \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Маска \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Типичный смысл \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m42 \u001b[32;22m+\u001b[38;2;147;153;178m|------|-------|----------------|\r\n\u001b[39m \u001b[2m43 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m/32\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m255.255.255.255\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m один конкр\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mетный IPv4-адрес \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m44 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m/24\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m255.255.255.0\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m 256 адресов\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mв подсети \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m45 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m/16\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m255.255.0.0\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m крупная сеть \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m46 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m/8\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m255.0.0.0\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m очень крупная сет\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mь \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m47 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m/0\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m0.0.0.0\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m весь IPv4-интернет,\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m маршрут по умолчанию \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m48 \u001b[32;22m+\r\n\u001b[39m \u001b[2m49 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mПриватные IPv4-диапазоны\r\n\u001b[39m \u001b[2m50 \u001b[32;22m+\r\n\u001b[39m \u001b[2m51 \u001b[32;22m+\u001b[38;2;205;214;244mЭти адреса не маршрутизируются напрямую\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mв публичном интернете и часто используют\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mся вместе с NAT:\r\n\u001b[39m \u001b[2m52 \u001b[32;22m+\r\n\u001b[39m \u001b[2m53 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m10.0.0.0/8\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m;\r\n\u001b[39m \u001b[2m54 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m172.16.0.0/12\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m;\r\n\u001b[39m \u001b[2m55 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m192.168.0.0/16\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m.\r\n\u001b[39m \u001b[2m56 \u001b[32;22m+\r\n\u001b[39m \u001b[2m57 \u001b[32;22m+\u001b[38;2;205;214;244mLoopback-диапазон:\r\n\u001b[39m \u001b[2m58 \u001b[32;22m+\r\n\u001b[39m \u001b[2m59 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m127.0.0.0/8\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, чаще всего \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m127.0.0.1\u001b[38;2;147;153;178m`\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mкак \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mlocalhost\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m.\r\n\u001b[39m \u001b[2m60 \u001b[32;22m+\r\n\u001b[39m \u001b[2m61 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mСвязи\r\n\u001b[39m \u001b[2m62 \u001b[32;22m+\r\n\u001b[39m \u001b[2m63 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[IP-адрес]]\r\n\u001b[39m \u001b[2m64 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[IPv6]]\r\n\u001b[39m \u001b[2m65 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[NAT]]\r\n\u001b[39m \u001b[2m66 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[Сетевые порты]]\r\n\u001b[0m\u001b[48X\r\n\u001b[2m └ \u001b[0m90 Library/Networking/Протоколы/HTTP, HTTPS\r\n\u001b[2m \u001b[0mи HTTP3.md (\u001b[32m+123\u001b[0m \u001b[31m-0\u001b[0m)\r\n\u001b[48;5;22m \u001b[2m 1 \u001b[32;22m+\u001b[38;2;147;153;178m---\u001b[36X\r\n\u001b[39m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;205;214;244mtitle: HTTP, HTTPS и HTTP/3\r\n\u001b[39m \u001b[2m 3 \u001b[32;22m+\u001b[38;2;205;214;244mstatus: seed\r\n\u001b[39m \u001b[2m 4 \u001b[32;22m+\u001b[38;2;205;214;244mtype: concept\r\n\u001b[39m \u001b[2m 5 \u001b[32;22m+\u001b[38;2;205;214;244mtags: [web, network, networking, protoc\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mols, http, https, http3]\r\n\u001b[39m \u001b[2m 6 \u001b[32;22m+\u001b[38;2;205;214;244mcreated: 2026-06-04\r\n\u001b[39m \u001b[2m 7 \u001b[32;22m+\u001b[38;2;205;214;244mupdated: 2026-06-04\r\n\u001b[39m \u001b[2m 8 \u001b[32;22m+\u001b[38;2;205;214;244msource: \"[[00_базовые_понятия.pdf]]\"\r\n\u001b[39m \u001b[2m 9 \u001b[32;22m+\u001b[38;2;205;214;244maliases:\r\n\u001b[39m \u001b[2m 10 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m HTTP, HTTPS и HTTP/3\r\n\u001b[39m \u001b[2m 11 \u001b[32;22m+\u001b[38;2;147;153;178m---\r\n\u001b[39m \u001b[2m 12 \u001b[32;22m+\u001b[38;2;205;214;244m# HTTP, HTTPS и HTTP/3\r\n\u001b[39m \u001b[2m 13 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 14 \u001b[32;22m+\u001b[38;2;205;214;244mHTTP (HyperText Transfer Protocol) — пр\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mикладной протокол для доступа к ресурса\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mм WWW. Клиент и сервер обмениваются отд\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mельными сообщениями: клиент отправляет\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mHTTP-запрос, сервер возвращает HTTP-отв\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mет.\r\n\u001b[39m \u001b[2m 15 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 16 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mГлавное\r\n\u001b[39m \u001b[2m 17 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 18 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m HTTP сам по себе не хранит состояние\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mмежду запросами. Сессии поверх HTTP обы\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mчно поддерживаются через cookies или то\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mкены.\r\n\u001b[39m \u001b[2m 19 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m HTTP/1.0 часто открывал новое TCP-сое\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mдинение на каждый обмен запросом и отве\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mтом.\r\n\u001b[39m \u001b[2m 20 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m HTTP/1.1 добавил постоянные соединени\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mя и конвейерную обработку.\r\n\u001b[39m \u001b[2m 21 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m HTTP/2 использует бинарные фреймы, сж\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mатие заголовков и мультиплексирование н\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mескольких потоков в одном TCP-соединени\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mи.\r\n\u001b[39m \u001b[2m 22 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m HTTPS — это HTTP поверх TLS. Он защищ\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mает конфиденциальность, целостность и а\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mутентичность соединения.\r\n\u001b[39m \u001b[2m 23 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m HTTP/3 переносит семантику HTTP на QU\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mIC поверх UDP и уменьшает проблему head\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m-of-line blocking.\r\n\u001b[39m \u001b[2m 24 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 25 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mHTTP-запрос\r\n\u001b[39m \u001b[2m 26 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 27 \u001b[32;22m+\u001b[38;2;205;214;244mСтартовая строка запроса состоит из мет\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mода, цели запроса и версии протокола:\r\n\u001b[39m \u001b[2m 28 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 29 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mhttp\r\n\u001b[39m \u001b[2m 30 \u001b[32;22m+\u001b[38;2;205;214;244mGET /index.html HTTP/1.1\r\n\u001b[39m \u001b[2m 31 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m 32 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 33 \u001b[32;22m+\u001b[38;2;205;214;244mОсновные методы:\r\n\u001b[39m \u001b[2m 34 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 35 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Метод \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Что делает \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m 36 \u001b[32;22m+\u001b[38;2;147;153;178m|-------|------------|\r\n\u001b[39m \u001b[2m 37 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mGET\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Получить ресурс; параметры ча\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mсто передаются в query string. \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m 38 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mPOST\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Отправить данные на сервер:\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mформа, JSON, файл. \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m 39 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mHEAD\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Получить только заголовки, к\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mак у \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mGET\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, без тела ответа. \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m 40 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mPUT\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Создать или полностью заменит\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mь ресурс. \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m 41 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mPATCH\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Частично изменить ресурс. \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m 42 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mDELETE\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Удалить ресурс. \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m 43 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mOPTIONS\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Узнать доступные методы/в\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mозможности сервера. \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m 44 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 45 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mHTTP-сообщение\r\n\u001b[39m \u001b[2m 46 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 47 \u001b[32;22m+\u001b[38;2;205;214;244mИ запрос, и ответ имеют общую структуру\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m:\r\n\u001b[39m \u001b[2m 48 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 49 \u001b[32;22m+\u001b[38;2;205;214;244m1\u001b[38;2;147;153;178m.\u001b[38;2;205;214;244m Стартовая строка.\r\n\u001b[39m \u001b[2m 50 \u001b[32;22m+\u001b[38;2;205;214;244m2\u001b[38;2;147;153;178m.\u001b[38;2;205;214;244m Заголовки.\r\n\u001b[39m \u001b[2m 51 \u001b[32;22m+\u001b[38;2;205;214;244m3\u001b[38;2;147;153;178m.\u001b[38;2;205;214;244m Пустая строка.\r\n\u001b[39m \u001b[2m 52 \u001b[32;22m+\u001b[38;2;205;214;244m4\u001b[38;2;147;153;178m.\u001b[38;2;205;214;244m Необязательное тело.\r\n\u001b[39m \u001b[2m 53 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 54 \u001b[32;22m+\u001b[38;2;205;214;244mЗаголовок записывается как \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mИмя-Заголов\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mка: значение\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m. Имя не чувствительно к р\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mегистру.\r\n\u001b[39m \u001b[2m 55 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 56 \u001b[32;22m+\u001b[38;2;205;214;244mЧастые заголовки запроса:\r\n\u001b[39m \u001b[2m 57 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 58 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mHost\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — конкретный домен или IP, к к\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mоторому обращается клиент.\r\n\u001b[39m \u001b[2m 59 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mUser-Agent\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — сведения о клиенте: бр\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mаузер, ОС, версия.\r\n\u001b[39m \u001b[2m 60 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mAccept\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — какие типы данных клиент г\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mотов принять.\r\n\u001b[39m \u001b[2m 61 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mCookie\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — cookies клиента.\r\n\u001b[39m \u001b[2m 62 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mAuthorization\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — данные аутентификац\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mии, например Bearer-токен.\r\n\u001b[39m \u001b[2m 63 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 64 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mHTTP-ответ\r\n\u001b[39m \u001b[2m 65 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 66 \u001b[32;22m+\u001b[38;2;205;214;244mСтрока статуса ответа содержит версию п\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mротокола, код состояния и текстовое поя\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mснение:\r\n\u001b[39m \u001b[2m 67 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 68 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mhttp\r\n\u001b[39m \u001b[2m 69 \u001b[32;22m+\u001b[38;2;205;214;244mHTTP/1.1 200 OK\r\n\u001b[39m \u001b[2m 70 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m 71 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 72 \u001b[32;22m+\u001b[38;2;205;214;244mКлассы кодов:\r\n\u001b[39m \u001b[2m 73 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 74 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m1xx\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — информационные.\r\n\u001b[39m \u001b[2m 75 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m2xx\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — успешная обработка.\r\n\u001b[39m \u001b[2m 76 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m3xx\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — перенаправление.\r\n\u001b[39m \u001b[2m 77 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m4xx\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — ошибка клиента.\r\n\u001b[39m \u001b[2m 78 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m5xx\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — ошибка сервера.\r\n\u001b[39m \u001b[2m 79 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 80 \u001b[32;22m+\u001b[38;2;205;214;244mЧастые коды:\r\n\u001b[39m \u001b[2m 81 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 82 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m200 OK\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — запрос успешно обработан.\r\n\u001b[39m \u001b[2m 83 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m302 Found\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — временное перенаправлен\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mие.\r\n\u001b[39m \u001b[2m 84 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m400 Bad Request\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — некорректный запр\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mос.\r\n\u001b[39m \u001b[2m 85 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m403 Forbidden\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — доступ запрещён.\r\n\u001b[39m \u001b[2m 86 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m404 Not Found\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — ресурс не найден.\r\n\u001b[39m \u001b[2m 87 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m500 Internal Server Error\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — внутрен\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mняя ошибка сервера.\r\n\u001b[39m \u001b[2m 88 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 89 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mHTTPS\r\n\u001b[39m \u001b[2m 90 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 91 \u001b[32;22m+\u001b[38;2;205;214;244mHTTPS использует TLS поверх TCP-соедине\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mния. Порт по умолчанию — \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m443\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, у обычн\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mого HTTP — \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m80\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m.\r\n\u001b[39m \u001b[2m 92 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 93 \u001b[32;22m+\u001b[38;2;205;214;244mБазовый смысл TLS:\r\n\u001b[39m \u001b[2m 94 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 95 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m сервер предъявляет сертификат;\r\n\u001b[39m \u001b[2m 96 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m клиент проверяет сертификат через цен\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mтр сертификации;\r\n\u001b[39m \u001b[2m 97 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m стороны согласуют ключи;\r\n\u001b[39m \u001b[2m 98 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m дальнейший трафик шифруется и защищае\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mтся от подмены.\r\n\u001b[39m \u001b[2m 99 \u001b[32;22m+\r\n\u001b[39m \u001b[2m100 \u001b[32;22m+\u001b[38;2;205;214;244mSSL — устаревшее название семейства про\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mтоколов, в современных системах фактиче\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mски используется TLS, но термин \"SSL-се\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mртификат\" всё ещё распространён.\r\n\u001b[39m \u001b[2m101 \u001b[32;22m+\r\n\u001b[39m \u001b[2m102 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mHTTP/3\r\n\u001b[39m \u001b[2m103 \u001b[32;22m+\r\n\u001b[39m \u001b[2m104 \u001b[32;22m+\u001b[38;2;205;214;244mHTTP/3 работает поверх QUIC, а QUIC раб\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mотает поверх UDP. QUIC объединяет надёж\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mную доставку, шифрование TLS 1.3 и упра\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mвление потоками.\r\n\u001b[39m \u001b[2m105 \u001b[32;22m+\r\n\u001b[39m \u001b[2m106 \u001b[32;22m+\u001b[38;2;205;214;244mКлючевые отличия:\r\n\u001b[39m \u001b[2m107 \u001b[32;22m+\r\n\u001b[39m \u001b[2m108 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m HTTP/2 \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m HTTP/3 \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m109 \u001b[32;22m+\u001b[38;2;147;153;178m|--------|--------|\r\n\u001b[39m \u001b[2m110 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Поверх TCP \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Поверх UDP/QUIC \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m111 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m TLS-хендшейк отдельно \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m TLS 1.3 встро\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mен в QUIC \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m112 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Потеря TCP-пакета может блокировать в\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mсе потоки \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Потеря пакета влияет только\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m на конкретный поток \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m113 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Соединение привязано к IP/порту \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m QUI\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mC поддерживает connection migration чер\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mез connection ID \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m114 \u001b[32;22m+\r\n\u001b[39m \u001b[2m115 \u001b[32;22m+\u001b[38;2;205;214;244mHTTP/3 не меняет смысл методов, заголов\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mков и кодов ответа. Меняется транспортн\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mый слой.\r\n\u001b[39m \u001b[2m116 \u001b[32;22m+\r\n\u001b[39m \u001b[2m117 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mСвязи\r\n\u001b[39m \u001b[2m118 \u001b[32;22m+\r\n\u001b[39m \u001b[2m119 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[TCP vs UDP]]\r\n\u001b[39m \u001b[2m120 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[IP-адрес]]\r\n\u001b[39m \u001b[2m121 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[DNS]]\r\n\u001b[39m \u001b[2m122 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[URI, URL, URN]]\r\n\u001b[39m \u001b[2m123 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[Сетевые порты]]\r\n\u001b[0m\u001b[48X\r\n\u001b[2m └ \u001b[0m90 Library/Networking/Протоколы/URI, URL,\r\n\u001b[2m \u001b[0mURN.md (\u001b[32m+75\u001b[0m \u001b[31m-0\u001b[0m)\r\n\u001b[48;5;22m \u001b[2m 1 \u001b[32;22m+\u001b[38;2;147;153;178m---\u001b[37X\r\n\u001b[39m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;205;214;244mtitle: URI, URL, URN\r\n\u001b[39m \u001b[2m 3 \u001b[32;22m+\u001b[38;2;205;214;244mstatus: seed\r\n\u001b[39m \u001b[2m 4 \u001b[32;22m+\u001b[38;2;205;214;244mtype: concept\r\n\u001b[39m \u001b[2m 5 \u001b[32;22m+\u001b[38;2;205;214;244mtags: [web, network, networking, uri, ur\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22ml, urn]\r\n\u001b[39m \u001b[2m 6 \u001b[32;22m+\u001b[38;2;205;214;244mcreated: 2026-06-04\r\n\u001b[39m \u001b[2m 7 \u001b[32;22m+\u001b[38;2;205;214;244mupdated: 2026-06-04\r\n\u001b[39m \u001b[2m 8 \u001b[32;22m+\u001b[38;2;205;214;244msource: \"[[00_базовые_понятия.pdf]]\"\r\n\u001b[39m \u001b[2m 9 \u001b[32;22m+\u001b[38;2;205;214;244maliases:\r\n\u001b[39m \u001b[2m10 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m URI, URL, URN\r\n\u001b[39m \u001b[2m11 \u001b[32;22m+\u001b[38;2;147;153;178m---\r\n\u001b[39m \u001b[2m12 \u001b[32;22m+\u001b[38;2;205;214;244m# URI, URL, URN\r\n\u001b[39m \u001b[2m13 \u001b[32;22m+\r\n\u001b[39m \u001b[2m14 \u001b[32;22m+\u001b[38;2;205;214;244mURI, URL и URN — способы идентифицироват\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mь ресурс. Для экзамена важно различать:\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mURL указывает, где и как получить ресурс\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m; URN даёт устойчивое имя; URI — общее п\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mонятие.\r\n\u001b[39m \u001b[2m15 \u001b[32;22m+\r\n\u001b[39m \u001b[2m16 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mURL\r\n\u001b[39m \u001b[2m17 \u001b[32;22m+\r\n\u001b[39m \u001b[2m18 \u001b[32;22m+\u001b[38;2;205;214;244mURL (Uniform Resource Locator) — адрес р\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mесурса в сети и способ его получения.\r\n\u001b[39m \u001b[2m19 \u001b[32;22m+\r\n\u001b[39m \u001b[2m20 \u001b[32;22m+\u001b[38;2;205;214;244mСинтаксис:\r\n\u001b[39m \u001b[2m21 \u001b[32;22m+\r\n\u001b[39m \u001b[2m22 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mtext\r\n\u001b[39m \u001b[2m23 \u001b[32;22m+\u001b[38;2;205;214;244mсхема://хост:порт/путь?параметры#фрагмен\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mт\r\n\u001b[39m \u001b[2m24 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m25 \u001b[32;22m+\r\n\u001b[39m \u001b[2m26 \u001b[32;22m+\u001b[38;2;205;214;244mПример:\r\n\u001b[39m \u001b[2m27 \u001b[32;22m+\r\n\u001b[39m \u001b[2m28 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mtext\r\n\u001b[39m \u001b[2m29 \u001b[32;22m+\u001b[38;2;205;214;244mhttps://home.mephi.ru/study_groups?level\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m=1&organization_id=1&term_id=20\r\n\u001b[39m \u001b[2m30 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m31 \u001b[32;22m+\r\n\u001b[39m \u001b[2m32 \u001b[32;22m+\u001b[38;2;205;214;244mКомпоненты:\r\n\u001b[39m \u001b[2m33 \u001b[32;22m+\r\n\u001b[39m \u001b[2m34 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m схема — чаще всего \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mhttp\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m или \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mhttps\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m;\r\n\u001b[39m \u001b[2m35 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m хост — домен или IP-адрес;\r\n\u001b[39m \u001b[2m36 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m порт — необязателен, если используется\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m порт по умолчанию;\r\n\u001b[39m \u001b[2m37 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m путь — расположение ресурса на сервере\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m;\r\n\u001b[39m \u001b[2m38 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m query string — параметры после \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m?\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m;\r\n\u001b[39m \u001b[2m39 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m фрагмент — часть документа после \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m#\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m,\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mчасто соответствует \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mid\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m HTML-элемента.\r\n\u001b[39m \u001b[2m40 \u001b[32;22m+\r\n\u001b[39m \u001b[2m41 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mURN\r\n\u001b[39m \u001b[2m42 \u001b[32;22m+\r\n\u001b[39m \u001b[2m43 \u001b[32;22m+\u001b[38;2;205;214;244mURN (Uniform Resource Name) — имя ресурс\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mа без указания его сетевого расположения\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m.\r\n\u001b[39m \u001b[2m44 \u001b[32;22m+\r\n\u001b[39m \u001b[2m45 \u001b[32;22m+\u001b[38;2;205;214;244mСинтаксис:\r\n\u001b[39m \u001b[2m46 \u001b[32;22m+\r\n\u001b[39m \u001b[2m47 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mtext\r\n\u001b[39m \u001b[2m48 \u001b[32;22m+\u001b[38;2;205;214;244murn:NID:NSS\r\n\u001b[39m \u001b[2m49 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m50 \u001b[32;22m+\r\n\u001b[39m \u001b[2m51 \u001b[32;22m+\u001b[38;2;205;214;244mПример:\r\n\u001b[39m \u001b[2m52 \u001b[32;22m+\r\n\u001b[39m \u001b[2m53 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mtext\r\n\u001b[39m \u001b[2m54 \u001b[32;22m+\u001b[38;2;205;214;244murn:uuid:d5aa821e-52bb-4f7e-a782-7662ed5\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22meaf5c\r\n\u001b[39m \u001b[2m55 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m56 \u001b[32;22m+\r\n\u001b[39m \u001b[2m57 \u001b[32;22m+\u001b[38;2;205;214;244mURN полезен, когда ресурс должен сохраня\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mть идентичность независимо от места хран\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mения. Пример: ISBN книги.\r\n\u001b[39m \u001b[2m58 \u001b[32;22m+\r\n\u001b[39m \u001b[2m59 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mURI\r\n\u001b[39m \u001b[2m60 \u001b[32;22m+\r\n\u001b[39m \u001b[2m61 \u001b[32;22m+\u001b[38;2;205;214;244mURI (Uniform Resource Identifier) — общи\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mй идентификатор ресурса. URI может быть\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mURL, URN или совмещать оба подхода.\r\n\u001b[39m \u001b[2m62 \u001b[32;22m+\r\n\u001b[39m \u001b[2m63 \u001b[32;22m+\u001b[38;2;205;214;244mСинтаксис:\r\n\u001b[39m \u001b[2m64 \u001b[32;22m+\r\n\u001b[39m \u001b[2m65 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mtext\r\n\u001b[39m \u001b[2m66 \u001b[32;22m+\u001b[38;2;205;214;244mсхема:[//[пользователь:пароль@]хост[:пор\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mт]][/]путь[?запрос][#фрагмент]\r\n\u001b[39m \u001b[2m67 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m68 \u001b[32;22m+\r\n\u001b[39m \u001b[2m69 \u001b[32;22m+\u001b[38;2;205;214;244mГлавное правило: все URL являются URI, н\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mо не все URI являются URL.\r\n\u001b[39m \u001b[2m70 \u001b[32;22m+\r\n\u001b[39m \u001b[2m71 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mСвязи\r\n\u001b[39m \u001b[2m72 \u001b[32;22m+\r\n\u001b[39m \u001b[2m73 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[HTTP, HTTPS и HTTP3]]\r\n\u001b[39m \u001b[2m74 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[DNS]]\r\n\u001b[39m \u001b[2m75 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[IP-адрес]]\r\n\u001b[0m\u001b[48X\r\n\u001b[2m └ \u001b[0m90 Library/Networking/Сетевые порты.md (\u001b[32m+54\r\n\u001b[39;2m \u001b[31;22m-0\u001b[0m)\r\n\u001b[48;5;22m \u001b[2m 1 \u001b[32;22m+\u001b[38;2;147;153;178m---\u001b[37X\r\n\u001b[39m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;205;214;244mtitle: Сетевые порты\r\n\u001b[39m \u001b[2m 3 \u001b[32;22m+\u001b[38;2;205;214;244mstatus: seed\r\n\u001b[39m \u001b[2m 4 \u001b[32;22m+\u001b[38;2;205;214;244mtype: concept\r\n\u001b[39m \u001b[2m 5 \u001b[32;22m+\u001b[38;2;205;214;244mtags: [network, networking, ports, tcp,\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mudp, web]\r\n\u001b[39m \u001b[2m 6 \u001b[32;22m+\u001b[38;2;205;214;244mcreated: 2026-06-04\r\n\u001b[39m \u001b[2m 7 \u001b[32;22m+\u001b[38;2;205;214;244mupdated: 2026-06-04\r\n\u001b[39m \u001b[2m 8 \u001b[32;22m+\u001b[38;2;205;214;244msource: \"[[00_базовые_понятия.pdf]]\"\r\n\u001b[39m \u001b[2m 9 \u001b[32;22m+\u001b[38;2;205;214;244maliases:\r\n\u001b[39m \u001b[2m10 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Сетевые порты\r\n\u001b[39m \u001b[2m11 \u001b[32;22m+\u001b[38;2;147;153;178m---\r\n\u001b[39m \u001b[2m12 \u001b[32;22m+\u001b[38;2;205;214;244m# Сетевые порты\r\n\u001b[39m \u001b[2m13 \u001b[32;22m+\r\n\u001b[39m \u001b[2m14 \u001b[32;22m+\u001b[38;2;205;214;244mСетевой порт — числовой идентификатор пр\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mоцесса или сервиса внутри одного IP-адре\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mса. IP-адрес указывает хост, порт указыв\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mает приложение на этом хосте.\r\n\u001b[39m \u001b[2m15 \u001b[32;22m+\r\n\u001b[39m \u001b[2m16 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mГлавное\r\n\u001b[39m \u001b[2m17 \u001b[32;22m+\r\n\u001b[39m \u001b[2m18 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Порт — число от \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m0\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m до \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m65535\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m.\r\n\u001b[39m \u001b[2m19 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Порты используются транспортными прото\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mколами, прежде всего TCP и UDP.\r\n\u001b[39m \u001b[2m20 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m TCP-порт и UDP-порт с одинаковым номер\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mом не конфликтуют: это разные пространст\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mва портов.\r\n\u001b[39m \u001b[2m21 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m Для веба важно помнить: HTTP обычно ис\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mпользует TCP \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m80\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, HTTPS — TCP \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m443\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, ал\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mьтернативный HTTP часто \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m8080\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m.\r\n\u001b[39m \u001b[2m22 \u001b[32;22m+\r\n\u001b[39m \u001b[2m23 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mДиапазоны\r\n\u001b[39m \u001b[2m24 \u001b[32;22m+\r\n\u001b[39m \u001b[2m25 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Диапазон \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Назначение \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m26 \u001b[32;22m+\u001b[38;2;147;153;178m|----------|------------|\r\n\u001b[39m \u001b[2m27 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m0-1023\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Well-known/system ports. В\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mUnix/Linux для привязки к ним обычно нуж\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mны повышенные права. \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m28 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m1024-49151\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Registered ports. Могут\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m быть зарегистрированы за службами. \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m29 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m49152-65535\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Dynamic/private ports.\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m Обычно используются клиентскими приложе\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mниями временно. \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m30 \u001b[32;22m+\r\n\u001b[39m \u001b[2m31 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mЧастые порты\r\n\u001b[39m \u001b[2m32 \u001b[32;22m+\r\n\u001b[39m \u001b[2m33 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Порт \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Сервис \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m34 \u001b[32;22m+\u001b[38;2;147;153;178m|------|--------|\r\n\u001b[39m \u001b[2m35 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m21\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m FTP \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m36 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m22\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m SSH \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m37 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m25\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m SMTP \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m38 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m53\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m DNS \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m39 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m80\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m HTTP \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m40 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m110\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m POP3 \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m41 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m123\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m NTP \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m42 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m143\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m IMAP \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m43 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m443\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m HTTPS \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m44 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m993\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m IMAPS \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m45 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m3306\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m MySQL \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m46 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m3389\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m RDP \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m47 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m8080\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m альтернативный HTTP \u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m48 \u001b[32;22m+\r\n\u001b[39m \u001b[2m49 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mСвязи\r\n\u001b[39m \u001b[2m50 \u001b[32;22m+\r\n\u001b[39m \u001b[2m51 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[HTTP, HTTPS и HTTP3]]\r\n\u001b[39m \u001b[2m52 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[TCP vs UDP]]\r\n\u001b[39m \u001b[2m53 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[IP-адрес]]\r\n\u001b[39m \u001b[2m54 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[NAT]]\r\n\u001b[0m\u001b[48X\r\n\u001b[2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mНовые заметки блока 1 добавлены. Теперь\r\n собираю сам файл подготовки: оглавление ведёт\r\n к коротким карточкам, каждая карточка ведёт к\r\n подробному блоку внизу, а подробный блок\r\n возвращает обратно к соответствующему блоку\r\n кратких тем.\r\n\r\n•\u001b[1C\u001b[2mWorking\u001b[1C(3m 33s • esc to interrupt)\r\n\r\n\u001b[48;5;238;22m \u001b[47X\r\n\u001b[1m›\u001b[22m \u001b[2mSummarize recent commits\r\n\u001b[22m \r\n\u001b[0m\u001b[2X\u001b[2C\u001b[38;2;246;226;183mgpt-5.5 high\u001b[39;2m · \u001b[38;2;171;223;167;22m~/Documents/Vaults/SecondBrain\u001b[1X\u001b[2A\u001b[45D\u001b[0m", "rows": 34, "scrollLine": -1 } @@ -164,7 +164,7 @@ }, "pinned": true, "icon": "terminal", - "title": "Terminal: ⠙ SecondBrain" + "title": "Terminal: ⠧ SecondBrain" } }, { @@ -269,6 +269,12 @@ }, "active": "06940eb960fc1db5", "lastOpenFiles": [ + "90 Library/Networking/OAuth 2.0.md", + "90 Library/Networking/Веб-аутентификация и авторизация.md", + "90 Library/Networking/Подсети и маска подсети.md", + "90 Library/Networking/Сетевые порты.md", + "90 Library/Networking/Протоколы/URI, URL, URN.md", + "90 Library/Networking/Протоколы/HTTP, HTTPS и HTTP3.md", "00 Inbox/Подготовка к экзамену по Веб-Разработке.md", "00 Inbox/00_базовые_понятия.pdf", "99 System/Archive/Основные команды git.md", @@ -290,11 +296,6 @@ "90 Library/Machine Learning/Нейронные сети.sync-conflict-20260603-110321-23DMR5O.md", "04 Tools/SocialBase/02 Друзья/Лика Вольфрам.sync-conflict-20260603-110335-23DMR5O.md", "04 Tools/SocialBase/04 Другие/Эля Богатова.sync-conflict-20260603-110335-23DMR5O.md", - "90 Library/Finance/Налоги/Налогообложение в России.sync-conflict-20260603-110335-23DMR5O.md", - "AGENTS.sync-conflict-20260603-110316-23DMR5O.md", - "04 Tools/SocialBase/04 Другие/Александр Сиордия.sync-conflict-20260603-110335-23DMR5O.md", - "90 Library/Networking/Networking - MOC.sync-conflict-20260603-110323-23DMR5O.md", - "04 Tools/SocialBase/04 Другие/Константин Блюдов.sync-conflict-20260603-110335-23DMR5O.md", "04 Tools/StudyTracker/Courses", "04 Tools/StudyTracker/Books", "04 Tools/SocialBase/04 Другие", diff --git a/90 Library/Networking/OAuth 2.0.md b/90 Library/Networking/OAuth 2.0.md new file mode 100644 index 0000000..846aa01 --- /dev/null +++ b/90 Library/Networking/OAuth 2.0.md @@ -0,0 +1,47 @@ +--- +title: OAuth 2.0 +status: seed +type: concept +tags: [web, security, oauth, authorization] +created: 2026-06-04 +updated: 2026-06-04 +source: "[[00_базовые_понятия.pdf]]" +aliases: +- OAuth 2 +- OAuth 2.0 +--- +# OAuth 2.0 + +OAuth 2.0 — протокол авторизации, который позволяет приложению получить ограниченный доступ к ресурсам пользователя на другом сервисе без передачи пароля пользователя этому приложению. + +## Где встречается + +- вход на сайт через Google, GitHub, VK или другую внешнюю учётную запись; +- мобильное приложение получает доступ к данным в облаке; +- бот или интеграция получает доступ к API сервиса. + +## Главная идея + +Пользователь подтверждает доступ на стороне сервиса-владельца данных. Клиентское приложение получает токен и использует его для запросов к API. + +Пароль пользователя при этом остаётся у сервиса-источника, а стороннее приложение получает только ограниченное разрешение. + +## Участники + +- Resource Owner — владелец ресурса, обычно пользователь. +- Client — приложение, которому нужен доступ. +- Authorization Server — сервер, который выдаёт токены. +- Resource Server — API, который принимает токен и отдаёт защищённые данные. + +## Токены + +- Access token — используется для доступа к API. +- Refresh token — используется для получения нового access token без повторного входа пользователя. +- Scope — набор разрешений, ограничивающий действия клиента. + +OAuth 2.0 — про авторизацию. Сам по себе он не обязан доказывать личность пользователя как протокол аутентификации; для входа поверх OAuth обычно используют OpenID Connect. + +## Связи + +- [[Веб-аутентификация и авторизация]] +- [[HTTP, HTTPS и HTTP3]] diff --git a/90 Library/Networking/Веб-аутентификация и авторизация.md b/90 Library/Networking/Веб-аутентификация и авторизация.md new file mode 100644 index 0000000..3f5c7d3 --- /dev/null +++ b/90 Library/Networking/Веб-аутентификация и авторизация.md @@ -0,0 +1,44 @@ +--- +title: Веб-аутентификация и авторизация +status: seed +type: concept +tags: [web, security, authentication, authorization, oauth] +created: 2026-06-04 +updated: 2026-06-04 +source: "[[00_базовые_понятия.pdf]]" +aliases: +- Идентификация, аутентификация и авторизация +- Веб-аутентификация +--- +# Веб-аутентификация и авторизация + +Идентификация, аутентификация и авторизация — разные этапы контроля доступа. + +## Термины + +- Идентификация — пользователь сообщает, кто он: логин, email, номер телефона, ID. +- Аутентификация — система проверяет, что пользователь действительно тот, за кого себя выдаёт: пароль, одноразовый код, ключ, сертификат. +- Авторизация — система решает, что уже аутентифицированному пользователю разрешено делать. + +Коротко: идентификация отвечает на вопрос "кто ты?", аутентификация — "докажи", авторизация — "что тебе можно?". + +## HTTP-аутентификация + +Распространённые схемы: + +- `Basic` — логин и пароль передаются как base64-строка. Base64 не является шифрованием, поэтому Basic нельзя использовать без HTTPS для чувствительных данных. +- `Digest` — схема с хешированием, исторически безопаснее Basic, но сейчас используется реже. +- `Bearer` — клиент передаёт токен, обычно в заголовке `Authorization`. + +Пример Bearer: + +```http +Authorization: Bearer eyJhbGciOi... +``` + +Bearer-токен даёт доступ тому, кто им владеет. Поэтому токены нужно хранить аккуратно, ограничивать срок их жизни и уметь отзывать. + +## Связи + +- [[OAuth 2.0]] +- [[HTTP, HTTPS и HTTP3]] diff --git a/90 Library/Networking/Подсети и маска подсети.md b/90 Library/Networking/Подсети и маска подсети.md new file mode 100644 index 0000000..7c667c5 --- /dev/null +++ b/90 Library/Networking/Подсети и маска подсети.md @@ -0,0 +1,66 @@ +--- +title: Подсети и маска подсети +status: seed +type: concept +tags: [network, networking, subnet, ipv4] +created: 2026-06-04 +updated: 2026-06-04 +source: "[[00_базовые_понятия.pdf]]" +aliases: +- Маска подсети +- Подсети +--- +# Подсети и маска подсети + +Маска подсети показывает, какая часть IPv4-адреса относится к сети, а какая — к хосту внутри этой сети. + +## Главное + +IPv4-адрес состоит из 32 бит. Без маски нельзя однозначно понять, где заканчивается номер сети и начинается номер хоста. + +Пример: + +```text +IP: 192.168.123.132 +Маска: 255.255.255.0 +CIDR: /24 +``` + +`/24` означает, что первые 24 бита — сеть, оставшиеся 8 бит — хосты. + +Для примера выше: + +- адрес сети: `192.168.123.0`; +- часть хоста: `0.0.0.132`; +- маска: `255.255.255.0`. + +## CIDR + +CIDR-запись `/N` показывает количество единиц в маске. + +| CIDR | Маска | Типичный смысл | +|------|-------|----------------| +| `/32` | `255.255.255.255` | один конкретный IPv4-адрес | +| `/24` | `255.255.255.0` | 256 адресов в подсети | +| `/16` | `255.255.0.0` | крупная сеть | +| `/8` | `255.0.0.0` | очень крупная сеть | +| `/0` | `0.0.0.0` | весь IPv4-интернет, маршрут по умолчанию | + +## Приватные IPv4-диапазоны + +Эти адреса не маршрутизируются напрямую в публичном интернете и часто используются вместе с NAT: + +- `10.0.0.0/8`; +- `172.16.0.0/12`; +- `192.168.0.0/16`. + +Loopback-диапазон: + +- `127.0.0.0/8`, чаще всего `127.0.0.1` как `localhost`. + +## Связи + +- [[IP-адрес]] +- [[IPv6]] +- [[NAT]] +- [[Сетевые порты]] diff --git a/90 Library/Networking/Протоколы/HTTP, HTTPS и HTTP3.md b/90 Library/Networking/Протоколы/HTTP, HTTPS и HTTP3.md new file mode 100644 index 0000000..9862655 --- /dev/null +++ b/90 Library/Networking/Протоколы/HTTP, HTTPS и HTTP3.md @@ -0,0 +1,123 @@ +--- +title: HTTP, HTTPS и HTTP/3 +status: seed +type: concept +tags: [web, network, networking, protocols, http, https, http3] +created: 2026-06-04 +updated: 2026-06-04 +source: "[[00_базовые_понятия.pdf]]" +aliases: +- HTTP, HTTPS и HTTP/3 +--- +# HTTP, HTTPS и HTTP/3 + +HTTP (HyperText Transfer Protocol) — прикладной протокол для доступа к ресурсам WWW. Клиент и сервер обмениваются отдельными сообщениями: клиент отправляет HTTP-запрос, сервер возвращает HTTP-ответ. + +## Главное + +- HTTP сам по себе не хранит состояние между запросами. Сессии поверх HTTP обычно поддерживаются через cookies или токены. +- HTTP/1.0 часто открывал новое TCP-соединение на каждый обмен запросом и ответом. +- HTTP/1.1 добавил постоянные соединения и конвейерную обработку. +- HTTP/2 использует бинарные фреймы, сжатие заголовков и мультиплексирование нескольких потоков в одном TCP-соединении. +- HTTPS — это HTTP поверх TLS. Он защищает конфиденциальность, целостность и аутентичность соединения. +- HTTP/3 переносит семантику HTTP на QUIC поверх UDP и уменьшает проблему head-of-line blocking. + +## HTTP-запрос + +Стартовая строка запроса состоит из метода, цели запроса и версии протокола: + +```http +GET /index.html HTTP/1.1 +``` + +Основные методы: + +| Метод | Что делает | +|-------|------------| +| `GET` | Получить ресурс; параметры часто передаются в query string. | +| `POST` | Отправить данные на сервер: форма, JSON, файл. | +| `HEAD` | Получить только заголовки, как у `GET`, без тела ответа. | +| `PUT` | Создать или полностью заменить ресурс. | +| `PATCH` | Частично изменить ресурс. | +| `DELETE` | Удалить ресурс. | +| `OPTIONS` | Узнать доступные методы/возможности сервера. | + +## HTTP-сообщение + +И запрос, и ответ имеют общую структуру: + +1. Стартовая строка. +2. Заголовки. +3. Пустая строка. +4. Необязательное тело. + +Заголовок записывается как `Имя-Заголовка: значение`. Имя не чувствительно к регистру. + +Частые заголовки запроса: + +- `Host` — конкретный домен или IP, к которому обращается клиент. +- `User-Agent` — сведения о клиенте: браузер, ОС, версия. +- `Accept` — какие типы данных клиент готов принять. +- `Cookie` — cookies клиента. +- `Authorization` — данные аутентификации, например Bearer-токен. + +## HTTP-ответ + +Строка статуса ответа содержит версию протокола, код состояния и текстовое пояснение: + +```http +HTTP/1.1 200 OK +``` + +Классы кодов: + +- `1xx` — информационные. +- `2xx` — успешная обработка. +- `3xx` — перенаправление. +- `4xx` — ошибка клиента. +- `5xx` — ошибка сервера. + +Частые коды: + +- `200 OK` — запрос успешно обработан. +- `302 Found` — временное перенаправление. +- `400 Bad Request` — некорректный запрос. +- `403 Forbidden` — доступ запрещён. +- `404 Not Found` — ресурс не найден. +- `500 Internal Server Error` — внутренняя ошибка сервера. + +## HTTPS + +HTTPS использует TLS поверх TCP-соединения. Порт по умолчанию — `443`, у обычного HTTP — `80`. + +Базовый смысл TLS: + +- сервер предъявляет сертификат; +- клиент проверяет сертификат через центр сертификации; +- стороны согласуют ключи; +- дальнейший трафик шифруется и защищается от подмены. + +SSL — устаревшее название семейства протоколов, в современных системах фактически используется TLS, но термин "SSL-сертификат" всё ещё распространён. + +## HTTP/3 + +HTTP/3 работает поверх QUIC, а QUIC работает поверх UDP. QUIC объединяет надёжную доставку, шифрование TLS 1.3 и управление потоками. + +Ключевые отличия: + +| HTTP/2 | HTTP/3 | +|--------|--------| +| Поверх TCP | Поверх UDP/QUIC | +| TLS-хендшейк отдельно | TLS 1.3 встроен в QUIC | +| Потеря TCP-пакета может блокировать все потоки | Потеря пакета влияет только на конкретный поток | +| Соединение привязано к IP/порту | QUIC поддерживает connection migration через connection ID | + +HTTP/3 не меняет смысл методов, заголовков и кодов ответа. Меняется транспортный слой. + +## Связи + +- [[TCP vs UDP]] +- [[IP-адрес]] +- [[DNS]] +- [[URI, URL, URN]] +- [[Сетевые порты]] diff --git a/90 Library/Networking/Протоколы/URI, URL, URN.md b/90 Library/Networking/Протоколы/URI, URL, URN.md new file mode 100644 index 0000000..2beb18d --- /dev/null +++ b/90 Library/Networking/Протоколы/URI, URL, URN.md @@ -0,0 +1,75 @@ +--- +title: URI, URL, URN +status: seed +type: concept +tags: [web, network, networking, uri, url, urn] +created: 2026-06-04 +updated: 2026-06-04 +source: "[[00_базовые_понятия.pdf]]" +aliases: +- URI, URL, URN +--- +# URI, URL, URN + +URI, URL и URN — способы идентифицировать ресурс. Для экзамена важно различать: URL указывает, где и как получить ресурс; URN даёт устойчивое имя; URI — общее понятие. + +## URL + +URL (Uniform Resource Locator) — адрес ресурса в сети и способ его получения. + +Синтаксис: + +```text +схема://хост:порт/путь?параметры#фрагмент +``` + +Пример: + +```text +https://home.mephi.ru/study_groups?level=1&organization_id=1&term_id=20 +``` + +Компоненты: + +- схема — чаще всего `http` или `https`; +- хост — домен или IP-адрес; +- порт — необязателен, если используется порт по умолчанию; +- путь — расположение ресурса на сервере; +- query string — параметры после `?`; +- фрагмент — часть документа после `#`, часто соответствует `id` HTML-элемента. + +## URN + +URN (Uniform Resource Name) — имя ресурса без указания его сетевого расположения. + +Синтаксис: + +```text +urn:NID:NSS +``` + +Пример: + +```text +urn:uuid:d5aa821e-52bb-4f7e-a782-7662ed5eaf5c +``` + +URN полезен, когда ресурс должен сохранять идентичность независимо от места хранения. Пример: ISBN книги. + +## URI + +URI (Uniform Resource Identifier) — общий идентификатор ресурса. URI может быть URL, URN или совмещать оба подхода. + +Синтаксис: + +```text +схема:[//[пользователь:пароль@]хост[:порт]][/]путь[?запрос][#фрагмент] +``` + +Главное правило: все URL являются URI, но не все URI являются URL. + +## Связи + +- [[HTTP, HTTPS и HTTP3]] +- [[DNS]] +- [[IP-адрес]] diff --git a/90 Library/Networking/Сетевые порты.md b/90 Library/Networking/Сетевые порты.md new file mode 100644 index 0000000..8e3b168 --- /dev/null +++ b/90 Library/Networking/Сетевые порты.md @@ -0,0 +1,54 @@ +--- +title: Сетевые порты +status: seed +type: concept +tags: [network, networking, ports, tcp, udp, web] +created: 2026-06-04 +updated: 2026-06-04 +source: "[[00_базовые_понятия.pdf]]" +aliases: +- Сетевые порты +--- +# Сетевые порты + +Сетевой порт — числовой идентификатор процесса или сервиса внутри одного IP-адреса. IP-адрес указывает хост, порт указывает приложение на этом хосте. + +## Главное + +- Порт — число от `0` до `65535`. +- Порты используются транспортными протоколами, прежде всего TCP и UDP. +- TCP-порт и UDP-порт с одинаковым номером не конфликтуют: это разные пространства портов. +- Для веба важно помнить: HTTP обычно использует TCP `80`, HTTPS — TCP `443`, альтернативный HTTP часто `8080`. + +## Диапазоны + +| Диапазон | Назначение | +|----------|------------| +| `0-1023` | Well-known/system ports. В Unix/Linux для привязки к ним обычно нужны повышенные права. | +| `1024-49151` | Registered ports. Могут быть зарегистрированы за службами. | +| `49152-65535` | Dynamic/private ports. Обычно используются клиентскими приложениями временно. | + +## Частые порты + +| Порт | Сервис | +|------|--------| +| `21` | FTP | +| `22` | SSH | +| `25` | SMTP | +| `53` | DNS | +| `80` | HTTP | +| `110` | POP3 | +| `123` | NTP | +| `143` | IMAP | +| `443` | HTTPS | +| `993` | IMAPS | +| `3306` | MySQL | +| `3389` | RDP | +| `8080` | альтернативный HTTP | + +## Связи + +- [[HTTP, HTTPS и HTTP3]] +- [[TCP vs UDP]] +- [[IP-адрес]] +- [[NAT]]