VBA信息获取与处理专题七第二节 网络通信过程的解读

发布时间:2026/7/11 3:00:49

VBA信息获取与处理专题七第二节  网络通信过程的解读 《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程目前已经是第一版修订了。这套教程定位于最高级是学完初级中级后的教程。这部教程给大家讲解的内容有跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作剪贴板应用、Split函数扩展、工作表信息与其他应用交互FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的更具研究的价值。教程共两册,二十个专题。今日分享内容是VBA信息获取与处理专题七第二节 网络通信过程的解读【分享成果随喜正能量】专注地做一件事做到极致胜过敷衍地做很多事。不求多但求精不求散但求专。每个人的时间和精力都是有限的专注于某个领域沉得住气静得下心充分发挥自己的潜能持续深耕才能有所作为。专题七第二节 网络通信过程的解读大家好在一讲中我讲解了网络通信的一些概念及网络通信的实现的步骤在这一讲我们来解读网络通信的具体过程了解一下网络通信的请求和响应是如何实现的。1 网络通信中客户端请求阶段为了更好的给大家讲解网络通信的过程我在360浏览器中要直接进行网址的搜索http://www.4399.com/为了更好的给大家讲解我利用了一个抓包的软件得到了我们客户端对服务器的请求如下GET http://www.4399.com/ HTTP/1.1Host: www.4399.comConnection: keep-aliveUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q0.9Cookie: __guid208989332.4442495301675265000.1591451028570.9978; monitor_count1; home4399yes;UM_distinctid17289df92b6561-0048d5baa4a47b-4e4c0d20-100200-17289df92b71d;CNZZDATA30039538cnzz_eid%3D1989079887-1591447571-null%26ntime%3D1591447571; Hm_lvt_334aca66d28b3b338a76075366b2b9e81591451030If-None-Match: W/5edaf3e5-29b9aIf-Modified-Since: Sat, 06 Jun 2020 01:39:49 GMT上述截图内容的讲解1首行的HTTP方法就是请求的方法。常用的就GET和POST。GET是索取数据的请求要求服务器返回URL指定的文档内容或返回URL指定的数据处理过程的结果所指向的文档是最常见的。POST是向服务器提交数据的请求要求服务器接收并利用随附的消息主体的数据来执行某个程序或获取文档通常用于浏览器向服务器发送表单数据例如提交注册信息或者进行数据查询等。所以如果采用GET方式一般消息主体为空采用POST方式的话一般就有相应的消息主体。请注意并不意味着采用GET方式就不能携带数据了URL是可以携带我们需要传递给服务器的参数的。可有多个参数用“”符号隔开每个参数的名和值用“”符号隔开。那既然GET方式也可以携带参数那两者区别又是什么呢一是安全性GET方式参数就在URL提交的是密码等私密资料就不合适用GET二是GET方式提交的数据最多只能有1024字节而POST则没有此限制。三是GET一般不能改变服务器的数据而POST可以改变服务器的数据例如注册了个用户服务器就多了数据条目。2Host字段该字段指定请求资源的Intenet主机和端口号即URL的域名部分HTTP/1.1请求必须包含该字段。3User-Agent字段该字段的内容包含发出请求的用户信息浏览器和系统等消息。4Cookie字段这是比较重要的请求头信息之一5If-Modified-Since字段所请求的页面在客户端的缓存中的最近更新时间6If-None-Match字段后面储存的是客户端读取的缓存中页面的缓存检验值特别提示发包的整个过程例如消息主体都不支持英文和数字以外的字符如果要写入中文或特殊字符就需要URLENCODE的函数进行转码了。urlencode是一个函数可将字符串以URL编码用于编码处理URL编码(URL encoding)也称作百分号编码(Percent-encoding) 是特定上下文的统一资源定位符 (URL)的编码机制。将需要转码的字符转为16进制然后从右到左取4位(不足4位直接处理)每2位做一位前面加上%编码成%XY格式。2 网络通信的服务器响应阶段当我们发送请求后服务器处理完我们的请求就会向我们的浏览器发送响应消息了。我们看看上面请求的响应HTTP/1.1 304 Not ModifiedDate: Sat, 06 Jun 2020 13:44:06 GMTContent-Type: text/htmlConnection: keep-aliveExpires: Sat, 06 Jun 2020 10:20:10 GMTLast-Modified: Sat, 06 Jun 2020 01:39:49 GMTETag: 5edaf3e5-29b9aCache-Control: max-age1800Age: 14028X-Via: 1.1 CSP-129514:10 (Cdn Cache Server V2.0)X-Ws-Request-Id: 5edb9da6_CSP-129514_16864-31796下面我们来解读一下上面的数据1 状态行 HTTP协议 [空格] 状态码 [空格] 状态解释 [回车换行]状态码常见的就是200成功、400错误请求一般我们是发送的请求有问题、500服务器错误。上面的值是304我在下面有讲解。2Content-Type表示后面的文档属于什么类型3 Expires指明应该在什么时候认为文档已经过期从而不再缓存它。4 Last-Modified文档在服务器上最后更新时间。同缓存一起保存这个值当再次访问该页面在请求的头部字段的If-Modified-Since中再次携带这个时间值发送至服务器如果服务器此时的文档更新时间晚于该时间返回新页面数据否则返回一个304Not Modified状态并加载缓存数据进行显示5 Set-Cookie: 服务器向客户端发送的cookie。6 ETag一段文本一般也是用于缓存是否更新的判断的校检值当首次访问页面时候获取这个值同缓存一起保存当再次访问时候请求阶段的If-None-Match字段就会再次携带这段校检值发送至服务器服务器判断ETag校检值是否变化变化则返回新的页面数据无变化则返回304读取缓存数据显示。3 Cookie、Session与Cache缓存网络通讯是静态的http协议是无状态的。它对于我们之前的所有通讯都没有记忆能力。那出现的问题是如果后续处理需要前面的信息则它必须重传这样可能导致每次连接传送的数据量增大。另一方面就难以验证用户的权限和登录问题。于是两种用于解决机制就产生了就是Cookie和Session。还有就是利用Cache可以减小重复数据的下载。1Cookie 是通过客户端记录通讯情况其是由服务器发给客户端的特殊信息以文本文件的方式存放在我们的电脑上然后我们的浏览器每次向服务器发送请求的时候就会带上这些特殊的信息。例如当我们登录网站时服务器会发送一段cookie给我们这就是我们在上面的响应阶段所说的Set-Cookie头部字段的功能后续的通讯在请求阶段就会使用cookie请求字段发送这段文本服务器收到了这段文本就知道我们已经登录了。2Session 它是通过服务器来记录通讯情况。Session指的是服务器端为客户端所开辟的存储空间在其中保存的信息就是用于保持状态。当我们的浏览器首次访问或者登录服务器时服务器就创建一个session服务器会为该Session生成唯一的Session id这个session id将从URL或者从cookie返回客户端以后的HTTP请求从cookie或者URL附上Session id服务器接受到请求之后就会依据Session id找到相应的Session这样用户的状态也就记忆了。3 Cache缓存 保存在客户端上的。当我们首次访问某个页面时浏览器会自动保存这个页面的部分内容例如html页面图片等当下一次再次访问时缓存直接使用之前保存的数据响应访问请求而不是向服务器再次发送请求。这样大大的节约了访问的时间。客户端首次访问服务器后服务器会返回该页面的Last-Modified或ETag字段值客户端将该页面数据保存在cache中并记录这两个属性。当客户端再次访问这个页面请求阶段的消息会在If-Modified-Since对应Last-Modified或If-None-Match对应ETag两个字段中携带之前在cache中保存的Last-Modified或ETag的属性值。服务器通过判断这个两个属性判断页面是否发生变化如无变化客户端不需要重新下载返回304响应。以上就是整个网络通信过程的基本过程大家可以慢慢理解。本节知识点回向网络通信的过程是怎么样的每个阶段有哪些数据的传输什么是Cookie什么是Session?什么是Cache作用是什么我20多年的VBA实践经验全部浓缩在下面的各个教程中教程学习顺序

相关新闻