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

请教大家一个 http 请求的基础知识~

  •  
  •   Perseush · 2015-02-04 17:41:01 +08:00 · 2447 次点击
    这是一个创建于 3583 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当服务器端处理完请求内容的时候,是怎么定位到客户端(页面)并将response发送过去的?不是指session

    被这个问题困扰了好久~求解

    8 条回复    2015-02-04 21:53:39 +08:00
    Perseush
        1
    Perseush  
    OP
       2015-02-04 17:42:51 +08:00
    有知道的没?
    lululau
        2
    lululau  
       2015-02-04 17:45:28 +08:00   ❤️ 1
    HTTP的下面是TCP,一个 HTTP 请求处理完之前,它所使用的那个 TCP 连接是不会被释放的,server想要往客户端写入数据,直接往那个 TCP 连接里(就是socket)写入数据及行了
    blacktulip
        3
    blacktulip  
       2015-02-04 17:46:19 +08:00   ❤️ 1
    我不確定我看明白了樓主的問題,樓主指的是 IP 路由麼?HTTP 一般認為是第七層的協議,找機器這個事情它不管的,那個是底下四層做的事情。
    aszxqw
        4
    aszxqw  
       2015-02-04 17:48:04 +08:00   ❤️ 1
    楼主听说过tcp吗
    Perseush
        5
    Perseush  
    OP
       2015-02-04 17:49:43 +08:00
    感谢@lululau,这个回答靠谱!
    jianghu52
        6
    jianghu52  
       2015-02-04 17:51:28 +08:00   ❤️ 1
    我大概明白你的意思。简单的来说,当客户端发起一个请求 request之后,他与服务器端就建立了一个通道,你可以把这个通道看成是固定,所以当服务器收到一个request之后,他实际上已经知道了是谁发出的这个request,所以当他处理完内容,发response的时候,目的地是非常明确的。
    建议你可以google下http的三次握手,有助于你理解当一个request产生的时候,从客户端的网卡开始,到服务器的网卡结束这段时间,都发生了什么事情
    Perseush
        7
    Perseush  
    OP
       2015-02-04 17:51:51 +08:00
    感谢各位,我之前对这块了解比较浅,没想到过底层协议。
    Her0
        8
    Her0  
       2015-02-04 21:53:39 +08:00   ❤️ 1
    楼主看看这个吧,很好的教程: http://happypeter.github.io/tealeaf-http/#chinese
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2765 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:21 · PVG 08:21 · LAX 16:21 · JFK 19:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.