网页版 HTTP 服务器,无需工具即可开启本地 HTTP 服务 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
iqoo
V2EX    分享创造

网页版 HTTP 服务器,无需工具即可开启本地 HTTP 服务

  •  
  •   iqoo 2021-10-26 23:56:39 +08:00 4573 次点击
    这是一个创建于 1450 天前的主题,其中的信息可能已经有所发展或是发生改变。

    研究 File System Access API 时突发奇想写的一个小工具,结合 Service Worker API 可实现 HTTP 服务器。

    打开网页选择一个文件夹,即可实现 HTTP 服务(当然只有本地可访问)。相当于把本地文件映射到虚拟 URL ,文件更新可实时生效。

    github.com/EtherDream/http-server-online

    支持远程也不难,通过 websocket 内网穿透即可实现,就是比较费流量。之后有空再加上。

    20 条回复    2021-11-02 19:27:27 +08:00
    kkocdko
        1
    kkocdko  
       2021-10-27 00:15:24 +08:00 via Android
    神奇!从没想过有这样的用法
    binux
        2
    binux  
       2021-10-27 08:14:15 +08:00 via Android
    我以为这个 HTTP 服务器是那种在一个端口上可以被另一个客户端访问的那种。。
    netnr
        3
    netnr  
       2021-10-27 08:22:51 +08:00 via Android
    有一种 electron 的味道
    zhw2590582
        4
    zhw2590582  
       2021-10-27 09:47:26 +08:00
    未曾设想道路
    zoharSoul
        5
    zoharSoul  
       2021-10-27 09:57:38 +08:00
    这思路有意思
    vazo
        6
    vazo  
       2021-10-27 10:03:05 +08:00
    红豆泥
    fxt0706
        7
    fxt0706  
       2021-10-27 10:21:20 +08:00
    iqoo
        8
    iqoo  
    OP
       2021-10-27 10:26:40 +08:00
    @binux JS 没法监听端口,无解。只能通过外网转发实现。
    cweijan
        9
    cweijan  
       2021-10-27 11:41:52 +08:00
    虽然没什么实际作用, 但是非常酷!
    2i2Re2PLMaDnghL
        10
    2i2Re2PLMaDnghL  
       2021-10-27 11:51:03 +08:00
    结合一下 WASM+enscripten 是不是能以任意语言为后端语言?
    iqoo
        11
    iqoo  
    OP
       2021-10-27 12:30:40 +08:00
    @2i2Re2PLMaDnghL 可以的,之前还考虑加上 php 功能。不过插件不好实现,比如 mysql 、curl 等,体积也比较大。
    wensonsmith
        12
    wensonsmith  
       2021-10-27 13:43:59 +08:00
    Cool !
    Robertwhite
        13
    Robertwhite  
       2021-10-27 17:39:13 +08:00
    这个原理是啥?

    访问 https://http-server.etherdream.com/img1.png 的时候,被 Service Worker 拦截,然后分析路径,通过 File System Access API 去加载本地文件,返回给拦截的请求,是这样吗?
    iqoo
        14
    iqoo  
    OP
       2021-10-27 18:48:56 +08:00
    0Vincent0Zhang0
        15
    0Vincent0Zhang0  
       2021-10-27 22:10:26 +08:00
    这个“HTTP 服务”其实并没有开启,只是让浏览器访问本地文件而已
    chenyi
        16
    chenyi  
       2021-10-28 08:53:07 +08:00
    @0Vincent0Zhang0 chrome 不就支持这样吗
    iqoo
        17
    iqoo  
    OP
       2021-10-28 10:11:15 +08:00
    @0Vincent0Zhang0 但是有 HTTPS 协议的 URL
    keventseng
        18
    keventseng  
       2021-10-28 14:52:05 +08:00
    chrome 有一款插件,好像就是这么个原理?
    40EaE5uJO3Xt1VVa
        19
    40EaE5uJO3Xt1VVa  
       2021-10-31 10:46:17 +08:00
    我没看懂,啥意思, 通过浏览器访问本地文件? 映射成 URL ? 有啥用
    iqoo
        20
    iqoo  
    OP
       2021-11-02 19:27:27 +08:00
    @yanzhiling2001 可以用来预览本地的静态网站
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3386 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 04:31 PVG 12:31 LAX 21:31 JFK 00:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86