V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
HHAO2019
V2EX  ›  问与答

为啥有些网站接口返回 html 页面?比如 v2ex

  •  
  •   HHAO2019 · 2020-06-01 09:13:32 +08:00 · 5066 次点击
    这是一个创建于 1396 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问了下群友,大概有如下回答:

    • seo 优化
    • 提高响应速度
    • 历史遗留问题?以前没有前后分离概念,都是服务器渲染?

    我个人猜测是提高访问速度。 比如当帖子创建,修改,回复的时候,后端生成静态页面。当查询的时候就直接返回生成页面。

    39 条回复    2020-06-02 12:02:27 +08:00
    emeab
        1
    emeab  
       2020-06-01 09:15:39 +08:00
    前后端分离也能 服务器渲染啊 XD
    misaka19000
        2
    misaka19000  
       2020-06-01 09:30:37 +08:00
    那么为什么不直接返回 HTML 页面?
    HHAO2019
        3
    HHAO2019  
    OP
       2020-06-01 09:33:46 +08:00
    @misaka19000 不太懂。我也是个人猜测吧。不知道为什么要这样设计,b 站的主页接口也是返回静态页面,v2 全站的接口好像都是返回页面
    misaka19000
        4
    misaka19000  
       2020-06-01 09:37:06 +08:00
    @HHAO2019 #3 我的意思是一般都是返回动态渲染过的页面,这是一种很正常的做法
    HHAO2019
        5
    HHAO2019  
    OP
       2020-06-01 09:39:04 +08:00
    @misaka19000 和返回数据相比,返回页面会有什么优势嘛?
    reus
        6
    reus  
       2020-06-01 09:40:04 +08:00 via Android   ❤️ 11
    终于也出现只知道接口不知道页面的新一代了啊
    monsterxx03
        7
    monsterxx03  
       2020-06-01 09:41:04 +08:00 via Android
    程序员的代沟😂
    MrKou47
        8
    MrKou47  
       2020-06-01 09:41:16 +08:00 via iPhone   ❤️ 1
    这就是前端的后浪吗🐶
    misaka19000
        9
    misaka19000  
       2020-06-01 09:41:53 +08:00
    @HHAO2019 #5 开发简单
    HHAO2019
        10
    HHAO2019  
    OP
       2020-06-01 09:42:14 +08:00
    @reus @monsterxx03 前辈能详细说说嘛?/xk
    HHAO2019
        11
    HHAO2019  
    OP
       2020-06-01 09:42:54 +08:00
    @MrKou47 我是做后端的,没见过这种玩法
    ccraohng
        12
    ccraohng  
       2020-06-01 09:42:57 +08:00 via Android
    网站不吐页面吐什么
    hanyceZ
        13
    hanyceZ  
       2020-06-01 09:43:28 +08:00
    马克。。。表示只知道返回接口数据。。。
    dcalsky
        14
    dcalsky  
       2020-06-01 09:44:33 +08:00 via Android
    兄弟你本末倒置了。是用了后端模板引擎渲染,才会返回 html 。相反如果纯粹使用 restful api,那会返回数据。这是一个选择问题,如果选择 restful api 那前端工作量就要提高,毕竟是需要做状态管理以及 DOM 动态增删的。
    HHAO2019
        15
    HHAO2019  
    OP
       2020-06-01 09:44:39 +08:00
    @ccraohng 我熟知的是,前后端交互是 json 。所以一下有点懵
    yty2012g
        16
    yty2012g  
       2020-06-01 09:45:44 +08:00
    我们这里有两个原因:第一,直出性能好。第二,后端发版比前端发版容易,影响更小一点。
    dcalsky
        17
    dcalsky  
       2020-06-01 09:45:59 +08:00 via Android
    补充:如果是一个接口,但又返回了 html,那就是为了方便不用管理前端状态,而直接替换 DOM
    HHAO2019
        18
    HHAO2019  
    OP
       2020-06-01 09:46:40 +08:00
    @dcalsky 噢噢 懂了。 看了下我们公司的后台也是返回 html,用的模板引擎。/xk
    ccraohng
        19
    ccraohng  
       2020-06-01 10:10:05 +08:00 via Android
    你所指的前,这里是浏览器,并不是 “前端”。
    guanhui07
        20
    guanhui07  
       2020-06-01 10:41:08 +08:00
    接口返回 xml 或 json 好了, 让后端拼接 html 接口返回 html 给前端 我也不喜欢 .
    knva
        21
    knva  
       2020-06-01 11:06:14 +08:00
    后浪
    adrianduan
        22
    adrianduan  
       2020-06-01 12:01:09 +08:00 via iPhone   ❤️ 1
    “为什么手机电池不做成可拆卸的”
    aureole999
        23
    aureole999  
       2020-06-01 13:21:02 +08:00
    你说的这个我们一般不叫接口,叫请求。你直接在地址栏里输入地址,这时候前端在哪呢?还不是得浏览器下载 html 页面,再执行其中你自己写的 js 。现在一些网站用单页面应用,也就是用你说的接口来实现动态变化,但单页面也至少一开始得有个页面请求啊。


    发展顺序是这样的:静态网站(直接返回静态的 html ) -> 动态网站( CGI,JSP/Servlet 等动态取得数据来生成 html )-> 单页应用网站


    现在几乎见不到静态网站了(谁还记得 FrontPage 和网页三剑客)。大多数都是动态和单页之间的混合型。
    Felldeadbird
        24
    Felldeadbird  
       2020-06-01 13:38:02 +08:00
    返回 HTML 好处是不需要前端作多一次渲染。

    很多以前项目,前后分离都不彻底,接口返回不一定全是 J 结构的。
    tlday
        25
    tlday  
       2020-06-01 13:56:50 +08:00
    那个...
    你们知道 asp/jsp 吗...
    你们还记得为什么 php 代码要写在 html 标签里面了吗...
    QlanQ
        26
    QlanQ  
       2020-06-01 14:17:20 +08:00
    后浪
    NotFoundEgg
        27
    NotFoundEgg  
       2020-06-01 14:46:38 +08:00
    JSP 时代也是返回页面的 el 表达式乱七八糟的 学过 Java 的应该都知道
    cgpiao
        28
    cgpiao  
       2020-06-01 14:58:44 +08:00 via iPhone
    感觉到代沟了(非贬义)
    anmie
        29
    anmie  
       2020-06-01 15:16:07 +08:00
    哎 我们已经老了,连技术都已经隔代产生代沟了。。。
    NasirQ
        30
    NasirQ  
       2020-06-01 15:44:03 +08:00
    真*代沟....
    Caratpine
        31
    Caratpine  
       2020-06-01 16:18:16 +08:00
    模板引擎渲染的,以前的 Web 框架都自带模板引擎,比如 Django, Flask.

    Flask 比较简单,可以看一下模板渲染的过程。
    revalue
        32
    revalue  
       2020-06-01 18:37:59 +08:00
    看来我不是最菜的。这个前端必须会哦,不然怎么吹所谓的 SSR
    lewinlan
        33
    lewinlan  
       2020-06-01 18:43:17 +08:00 via Android
    问就是历史遗留问题……
    TsuiiusT
        34
    TsuiiusT  
       2020-06-01 20:39:06 +08:00
    嗯?没有一个返回 html 的请问页面从哪里来?
    jzmws
        35
    jzmws  
       2020-06-01 20:58:04 +08:00
    时代发展太快了 , 都忘记服务器渲染了, 前后端分离开发就是爽
    tingyunsay
        36
    tingyunsay  
       2020-06-02 00:25:32 +08:00 via iPhone
    seo,不然前后分离只有 json,爬虫看不到
    wusheng0
        37
    wusheng0  
       2020-06-02 00:39:46 +08:00 via Android
    你说的接口是直接访问的地址吗?
    难道说 api 返回 html ?
    lumotian
        38
    lumotian  
       2020-06-02 01:40:01 +08:00
    感觉你们都没看懂楼主说的什么,楼主说的 页面加载完了 又发了一个异步接口返回的 html 代码的那种情况
    julyclyde
        39
    julyclyde  
       2020-06-02 12:02:27 +08:00
    现在的前端界真是祸害……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1003 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:15 · PVG 06:15 · LAX 15:15 · JFK 18:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.