02. Web请求过程分析

目录

Web请求全过程剖析

前言

一个简单的例子

1. 服务器渲染

2. 前端JS渲染

得出结论

总结


Web请求全过程剖析


前言

上一小节我们实现了一个简单的网页源代码抓取工作,那么从根源出发,网页是如何访问的?源代码是怎么传输到我们这里的?本小节将讲述网页请求过程的分析,这样有助于我们后面遇到各种各样形形色色网站时能够得心应手地处理,也有了入手的基本准则。

那么我们在浏览器输入网址后,直到看到网页整体内容,这期间究竟发生了什么?


一个简单的例子

还是以百度搜索为例:在访问百度搜索时,浏览器会把这一次请求送到百度的服务器,由服务器接受到这个请求,然后加载出对应的数据,返回给我们的浏览器,然后进行显示。听起来好像是一些废话,但是这里有一个极为重要的细节:百度服务器返回给我们的不是直接显示的页面,而是我们上节所提到的页面源代码(由html,css,js组成),再由浏览器把页面源代码执行,最后把执行结果展示给用户。

具体过程如下图所示:

 接下来就要介绍另一个重要的概念了。我们请求到的页面源代码包含所有数据吗?也就是说,我们当前页面显示的所有数据都在源代码中包含吗?这就要说到”页面渲染“过程了。

我们常见的页面渲染过程有两种

1. 服务器渲染

这个最容易理解,也是最直白最简单的。其含义就是我们在请求到服务器的时候,服务器会直接将数据全部写入html'中,我们的浏览器就能直接拿到带有数据的html内容(按F12打开浏览器调试工具)。比如:

电影天堂
电影天堂

由于数据是直接写在html中的,所以我们能看到的数据都在页面源代码中有迹可循,这种网页一般也相对容易抓取到页面内容。

2. 前端JS渲染

这种就稍显麻烦了,这种机制一般是第一次请求服务器返回一堆HTML框架结构,然后再次请求到真正保存数据的服务器,再由这个服务器返回数据,最后在浏览器上对数据进行加载,如下图:

 这样做的好处是网站服务器能够缓解压力,并且分工明确,方便维护。典型例子是JD:

京东

可以看到这件商品在源代码中是没有显示的,但是页面上却有此商品的显示,那么数据是何时加载进来的呢?通过搜索,我们找到一个json文件,说明数据是存放在其他文件中,并不在源代码中直接存在,这个文件是通过其他请求得来。双击打开显示如下:

其实,我们页面滚动的时候,JD就在加载数据了,要想看到这个过程,还是需要借助浏览器的调试工具(F12):

选择“网络”项 ,点击禁止按钮,可以清空当前网络活动的缓存,方便我们观察网站的下一步活动。

此时我们向下滚动,可以看到刚刚新请求到的文件:

 所以页面上看到的内容是后加载进来的,第一次请求的源代码只是这个网站的框架,没有内容。相信大家在网络加载缓慢的时候也遇到过这种情况,先加载出网页的框架,随后才加载出图片和其他内容,这就是多次请求的结果。


得出结论

说到这两种渲染方式,我只是想告诉各位,我们的数据不仅仅来自于页面源代码,更多时候会存放到另一个请求中,我们在爬取 这类数据的时候要多花心思找到目的请求,从而拿到想要的数据。


总结

# 1、服务器渲染:在服务器那边直接把数据和html整合在一起,一并返回给浏览器,在页面源代码中能看到数据(一次请求+反馈)
# 2、客户端渲染:第一次请求只要一个html骨架,第二次请求拿到数据,进行数据展示,在页面源代码中不显示数据

# 客户端渲染情况下要获取数据,必须熟练使用浏览器抓包工具(检查/F12),找到对应请求数据的html文件

简单了解一个完整的Web请求流程
Ein的博客
03-11 4013
一、在浏览器中输入一个网址 在浏览器中输入网址,敲击回车,就开始发起了请求。 整个过程大制如下: 1. 浏览器通过域名解析把输入的网址转换为对应的IP地址 2. 根据IP在互联网上找到对应的服务器,建立Socket链接 3. 客户端向服务器发送HTTP协议请求包,请求服务器中的资源 4. 到达负载均衡服务器,根据相应策略来分配用户请求到指定服务器来处理请求 5. 请求的数据可以存...
深入web请求过程
11-18
这是与我的博客文章对应的资源,介绍了《深入分析Java Web技术内幕》中第一章深入Web请求过程的知识框架。欢迎下载
全面分析前端的网络请求方式
油墨香^-^的博客
05-10 1933
一、前端进行网络请求的关注点 大多数情况下,在前端发起一个网络请求我们只需关注下面几点: 传入基本参数(url,请求方式) 请求参数、请求参数类型 设置请求头 获取响应的方式 获取响应头、响应状态、响应结果 异常处理 携带cookie设置 跨域请求 二、前端进行网络请求的方式 form表单、ifream、刷新页面 Ajax- 异步网络请求的开山鼻祖 jQuery- 一个时代 fet...
http网页请求过程分析工具
12-26
一个web开发的有利帮手,专门分析http的post,get方法使用时,浏览器与服务器直接的数据交换过程
【完整清晰版】深入web请求过程图解xmind版
07-31
关于web请求过程中从域名的输入,到CDN解析渲染整个过程分析图解,不可用于商业用途,如有版权问题,请联系删除!
web认证流程及常见问题分析.ppt
11-21
Web 认证流程及常见问题分析 Web 认证流程是 AAA(认证、授权、计费)的初始步骤,AAA 一般包括用户终端、AAAClient、AAA Server 和计费软件四个环节。用户终端与 AAA Client 之间的通信方式通常称为认证方式。目前...
Web服务器日志分析.pptx
06-07
APACEH日志分析 web 服务器日志记录了 Web 服务器接收处理请求及运行时错误等各种原始信息 。 通过对日志进行统计 、 分析和综合 , 就能有效地掌握服务器的运行状况 、 发现和排除错误原因 、 了解客户访问分布等...
2022年优秀-Web服务器日志分析.pptx
11-14
Web 服务器日志分析 Web 服务器日志分析是指对 Web 服务器上生成的日志文件进行分析和处理,以了解服务器的运行状况、发现和排除错误原因、了解客户访问分布等,从而更好地加强系统的维护和管理。Web 服务器日志...
Python爬虫(入门+进阶)学习笔记 3-1 爬虫工程师进阶(七):HTTP请求分析
kissazhu的博客
06-30 1648
Chrome浏览器相对于其他的浏览器而言,DevTools(开发者工具)非常强大。这节课将为大家介绍怎么利用Chrome浏览器的开发者工具进行HTTP请求分析Chrome浏览器讲解Chrome 开发者工具是一套内置于Google Chrome中的Web开发和调试工具,可用来对网站进行迭代、调试和分析打开Chrome开发工具在Chrome菜单中选择更多工具 >开发者工具在页面元素上右键点击,选...
URL页面请求过程分析
weixin_30929195的博客
05-30 170
1.输入URL地址或者点击URL的一个链接 2.浏览器根据URL地址,结合DNS,解析出URL对应的IP地址 3.发送HTTP请求 4.开始连接请求服务器并且请求相关的内容 5.浏览器解析从服务器端返回的内容,并且把页面显现出来 URL访问网站时的网络传输全过程,可以归纳为:首先通过域名找到IP,如果缓存里没有就要请求DNS服务器;得到IP后开始与目的主...
浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)
weixin_30270561的博客
05-30 2968
1、概要   从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程。下面我将依靠自己的经验,总结一下整个过程。如有错漏,欢迎指正。   阅读本文需要读者已有一定的计算机知识,了解TCP、DNS等。 2、分析   众所周知,打开一个网页过程中,浏览器会因页面上的css/js/image等静态资源会多次发起连接请求,所...
浏览器发送http请求过程分析
weixin_33770878的博客
07-12 509
请求过程整体流程:域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户.下面以Chrome浏览器访问...
使用retrofit网络框架请求webservice接口
闫瑞锋的博客
03-30 1574
背景 没啥背景,实在是受够了ksoap2这个jar包,而公司服务端是基于c#语言的.net开发,不懂他们的技术,而他们好像只能通过WebService与我们Android端进行数据交互(如果有前辈知道别的技术,望指点!谢谢~). Retrofit作为当前最火的网络请求框架.如果不去学,永远不会用.因此,我想把这个框架引入到公司项目里边来,把ksoap...
web前端开发必知的HTTP通信过程
Inuyasha1121的专栏
11-17 4903
在做web前端开发时,我们必须要知道客户端和服务端是如何通信的,通俗简单点就是  请求(客户端) > 响应 (服务端)的过程,可是客户端又是如何向服务端如何请求的呢?而服务端又是如何响应的呢,响应的信息又是不是我们想要的呢?带着问题往下看吧。 HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web
网站分析数据的三种收集方式详解
WEL测试
12-13 5223
原文转载:http://www.uml.org.cn/jmshj/201611074.asp?artid=18615 回顾网站数据分析历史,从“您是第***位来访用户”到现在百家齐放的专业工具提供商,网站分析已经逐渐发展衍化成一门科学。但面对形态各异的分析数据,很多人仍然困惑于数据的来源,了解数据的收集原理,也许对你解决这些困惑有所帮助。 眼下网站分析数据主
Http请求和Http响应详细解析
热门推荐
蓝色骨头的博客
05-31 4万+
http://www.cnblogs.com/linjiqin/p/3560152.html(转载) 一次完整的HTTP请求所经历的7个步骤 HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议
一次完整的HTTP请求过程(深入分析
man_tou_22
08-22 4224
前一段时间,面试问到了这个问题,感觉自己回答的不是很好, 当时我的回答是 1.域名解析(这个说了一下域名解析的过程) ,解析出对应IP地址 2.解析成功之后,发起TCP三次握手建立连接 3.建立连接后发起HTTPS请求 4.服务器响应https请求,浏览器得到html代码 5.浏览器解析html代码,并请求静态资源(html/css/js等) 6.然后浏览器渲染,展示给用户 但是当时面试官...
(域名解析过程web请求过程全解析一
qq_38839744的博客
12-20 1973
随着Web2.0时代的到来,互联网架构开始从传统的C/S架构向B/S架构转变。要想了解一个Web请求过程必须先得了解当前B/S网络的架构:                                                  图1    CDN架构图 图1是一个标准、简单的内容分布式网络(Content Delivery NetWork 简称 CDN) 以下将通过这幅图详细...
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.
最新发布
07-09
该异常org.springframework.web.util.NestedServletException是Spring框架中的异常类,表示请求处理失败,并且嵌套的异常是一个java.lang.NullPointerException。 在Spring MVC中,请求的处理是由FrameworkServlet...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • EasyConnect登陆报错:拉起虚拟网卡失败,请确保虚拟网卡已经安装在系统上并处于启用状态,然后再重新登录解决此问题。 12575
  • 35. 实战:Python实现视频去水印(文末源码) 9341
  • 28. 实战:基于selenium实现12306自动购票 8740
  • 电子科技大学人工智能期末复习笔记(五):机器学习 7976
  • 电子科技大学人工智能期末复习笔记(一):搜索问题 7888

分类专栏

  • Python爬虫入门、进阶与实战 42篇
  • 复习笔记 37篇
  • HTML入门、进阶与实战 39篇
  • CSS入门、进阶与实战 11篇
  • 计算机视觉与深度学习学习
  • 数据分析 1篇
  • 各种Debug小记 11篇
  • 环境配置小记 3篇

最新评论

  • 电子科技大学人工智能期末复习笔记(三):一阶逻辑

    m0_74217718: 学长 归结处好像写反了 应该是liming/x

  • 电子科技大学编译原理复习笔记(四):程序语言的设计

    haoyu1561: 呜呜大佬贴贴

  • 28. 实战:基于selenium实现12306自动购票

    2301_80657628: 我的意思是可不可以在登陆跟预定之间加一个步骤,使其人为的填写身份证跟验证码后,继续进行预定操作,现在的程序在登陆后会直接出错,没办法继续预定

  • 28. 实战:基于selenium实现12306自动购票

    2301_80657628: 麻烦问一下,现在必须要身份证跟验证码才能进行登录,那进行自动购票的时候是否可以自行提前登录,然后购买吗?还是说这个自动购票无法实现了

  • 电子科技大学人工智能期末复习笔记(二):MDP与强化学习

    A lifetime of war: 学长,神!!!

大家在看

  • 免费公开的源代码
  • 《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40+篇内容,内含各种Head检测头、损失函数Loss、Backbone、Neck、NMS等创新点改进 271
  • 基于传统小信号理论/谐波线性化方法的MMC序阻抗建模及文献复现(Matlab&PSCAD) 322
  • flink1.12.0学习笔记(一)-部署与入门
  • 【PyQt5】一文向您详细介绍 self.setWindowTitle() 的作用

最新文章

  • 0风险禁用Windows10更新30年!
  • py文件如何打包成exe?如何压缩文件大小?
  • windows在gem下安装jekyll的问题
2024年1篇
2023年100篇
2022年44篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vec_Kun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司赤峰关键词排名包年推广公司吉安百度网站优化哪家好铜陵网站制作设计报价民治网站制作设计价格红河网页制作多少钱上海SEO按效果付费推荐焦作网络广告推广报价民治外贸网站建设公司江门营销网站推荐宝鸡网站搜索优化哪家好珠海网站制作设计推荐铜陵百姓网标王推广多少钱常州关键词按天扣费报价开封网站优化按天扣费公司温州网站优化软件中山百度竞价包年推广哪家好同乐模板推广公司福永网络广告推广报价漯河外贸网站制作公司南通百姓网标王推广多少钱镇江百搜标王价格孝感如何制作网站多少钱永州百度seo报价横岗网站优化排名哪家好湖州网站优化按天计费价格株洲网站开发哪家好通辽企业网站制作推荐光明企业网站建设价格郑州seo排名报价鹤壁网络广告推广价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化