美文网首页
一个HTTP请求的前世今生

一个HTTP请求的前世今生

作者: 鱼蛮子9527 | 来源:发表于2022-05-13 11:15 被阅读0次

网络请求现在充斥这我们生活中的各个地方,不论是在浏览器里面搜索你想要的信息,还是用手机跟朋友的聊微信,亦或者使用智能电视观看电视节目,网络请求无时无刻不在为你服务,那么你知道一个网络请求的完整链路吗?当从你在浏览器里面输入一个地址,它会经过那些环节才会到你看到的样子?

比如,我们在浏览器里面输:https://restapi.amap.com/v3/place/detail?id=B0FFFAB6J2&key=6797e532620992299480cb05dbca7cff

浏览器会显示如下信息

{
  "count": "1",
  "infocode": "10000",
  "pois": [
    {
      "parent": [],
      "distance": [],
      "pcode": "110000",
      "importance": [],
      "biz_ext": {
        "cost": [],
        "rating": []
      },
      "recommend": "0",
      "type": "商务住宅;楼宇;商务写字楼",
      "photos": [
        {
          "title": "效果图",
          "url": "http://store.is.autonavi.com/showpic/a9836f620749c34742cf1ab67dc98f08"
        },
        {
          "title": [],
          "url": "http://store.is.autonavi.com/showpic/53b11166a310a21470acde3a"
        },
        {
          "title": [],
          "url": "http://store.is.autonavi.com/showpic/53b11166a310a21470acde31"
        }
      ],
      "discount_num": "0",
      "gridcode": "5916739702",
      "typecode": "120201",
      "shopinfo": "0",
      "poiweight": [],
      "deep_info": {
        "deepsrc": []
      },
      "citycode": "010",
      "adname": "朝阳区",
      "indoor_src": "高德地图",
      "children": [],
      "tel": [],
      "id": "B0FFFAB6J2",
      "tag": [],
      "event": [],
      "entr_location": "116.474531,39.993159",
      "indoor_map": "1",
      "email": [],
      "timestamp": "2020-08-21 11:35:30",
      "website": [],
      "address": "阜荣街10号",
      "adcode": "110105",
      "pname": "北京市",
      "biz_type": [],
      "cityname": "北京市",
      "postcode": [],
      "match": "0",
      "business_area": "望京",
      "indoor_data": {
        "cmsid": "TY000191_B0FFFAB6J2",
        "truefloor": [],
        "cpid": "B0FFFAB6J2",
        "floor": []
      },
      "childtype": [],
      "rich_content": [],
      "exit_location": [],
      "name": "首开广场",
      "location": "116.473004,39.993306",
      "shopid": [],
      "navi_poiid": "J50F001020_342662",
      "groupbuy_num": "0"
    }
  ],
  "status": "1",
  "info": "OK"
}

这里我们以此为例分析下整个过程的发生,并延伸解读相关的一些概念。

首先看下请求的整个大致链路


请求过程
  1. 用户在浏览器中输入想要访问的地址
  2. 浏览器需要从缓存或者DNS中获取要链接的IP地址,然后跟获取到的IP建立连接,并发送请求
  3. 现在一般大公司都会有统一接入层,我厂就会由统计接入层来处理https证书,转发流量等
  4. 转发后的流量会到请求的实际处理服务器,然后将数据交由监听端口的服务进行处理,这里根据语言或者实现的不同有Nginx、Tomcat等
  5. 服务的话以Java为例,现在主要流行的是Spring体系,接到请求后会做请求的Dispatch,交由一个线程进行处理,使用Mybatis或其他ORM框架从数据库中读取数据,处理成指定的数据格式并返回
  6. 数据库层现在多使用MySql提供数据的存储、查询等,当然也可能会使用Redis之类的NoSql进行缓存
  7. 在这些都做完之后,会将结果层层返回,直至用户的浏览器端,浏览器再根据http协议解析数据,进行最终的结果呈现

这里主要写了我认为比较重要的几个节点,可以看到这个链路还是挺长的,而且这还少简化了很多细节,中间会涉及到很多技术,后续的文章也根据这些节点来展开,尽量阐述明白。

相关文章

  • 一个HTTP请求的前世今生

    网络请求现在充斥这我们生活中的各个地方,不论是在浏览器里面搜索你想要的信息,还是用手机跟朋友的聊微信,亦或者使用智...

  • 文章目录

    一个HTTP请求的前世今生[https://www.jianshu.com/p/cdca46fcd897] 网...

  • 谈谈feign

    Feign的前世今生 Feign是什么? Feign的工作机制 处理注解 解析参数 构造http请求模板 发送请求...

  • HTTP前世今生

    HTTP简介 HTTP (Hypertext transfer protocol) 翻译成中文是超文本传输协议,是...

  • HTTP的前世今生

    HTTP站在TCP之上 HTTP是建立在TCP之上,HTTP协议的瓶颈以及优化技巧其实都是基于TCP协议的本身特性...

  • HTTP 发展的前世今生

    网络优化系列专题,聊一聊面对复杂多变的移动网络,我们需要掌握哪些网络基础知识,以及该如何做好网络优化这项工作。 网...

  • http协议的前世今生

    本文主要内容: 前言:什么是协议?1.http的由来(http是什么)2.http消息格式3.http的使用4.h...

  • OkHttp源码透析

    What? OkHttp 是一个高效的 HTTP 客户端它的前世今生,square在使用Android底层HTTP...

  • runtime的前世今生

    玩转runtime的前世今生看我足矣:http://www.cocoachina.com/ios/20180122...

  • 将军在上之男昭女惜重生三世千年孽缘

    前世!今生!来世再续! 前世欠谁!今生还!来世再续前缘! 前世因!今生续!来世果!

网友评论

      本文标题:一个HTTP请求的前世今生

      本文链接:https://www.haomeiwen.com/subject/qabyurtx.html