美文网首页VBA研究
HTTP连接-请求头与响应头

HTTP连接-请求头与响应头

作者: mew_c360 | 来源:发表于2019-07-31 15:40 被阅读0次

生成UUID

Option Explicit

Private Type GUID

  Data1 As Long

  Data2 As Long

  Data3 As Long

  Data4(8) As Byte

End Type

Private Declare Function CoCreateGuid Lib "ole32.dll" (pguid As GUID) As Long

Private Declare Function StringFromGUID2 Lib "ole32.dll" (rguid As Any, ByVal lpstrClsId As Long, ByVal cbMax As Long) As Long

Private Function MSGIDGen() As String

  Dim uGUID As GUID

  Dim sGUID As String

  Dim bGUID() As Byte

  Dim lLen As Long

  Dim RetVal As Long

  lLen = 40

  bGUID = String(lLen, 0)

  CoCreateGuid uGUID '把结构转换为一个可显示的字符串

  RetVal = StringFromGUID2(uGUID, VarPtr(bGUID(0)), lLen)

  sGUID = bGUID

  If (Asc(Mid$(sGUID, RetVal, 1)) = 0) Then RetVal = RetVal - 1

  GUIDGen = Left$(sGUID, RetVal)

  msgId = Replace(GUIDGen, "-", "")     '替换,消除UUID中的"-"字符

  msgId = Replace(msgId, "{", "")

  msgId = Replace(msgId, "}", "")

  'Debug.Print msgId

End Function

获取时间戳

timeStamp = Format(Date, "yyyy-m-d ") & Format(Time, "hh:mm:ss")   

‘2019-07-31 15:39:00

Transfer-Encoding

一、Transfer-Encoding: chunked是什么?

Transfer-Encoding头字段可以用在请求头或响应头中。该头字段有两个值chunked和identity

作用:

Transfer-Encoding值为chunked时,代表要把请求的数据或响应的数据切割成一系列的块数据传输。

Transfer-Encoding值为identity时,代表不做任何处理。

二、为什么分块?

分块传输的目的是为了实现长连接, 有了长连接后就可以实现连接池。长连接和连接池的作用是可以提高http请求的性能。

三、http长连接如何实现?

1.什么是短连接?    连接->传输数据->关闭连接

2.什么是长连接?    连接->传输数据->保持连接 -> 传输数据-> ... ->关闭连接。

3.长连接为什么可以提性能?

HTTP运行在TCP连接之上,自然也有着跟TCP一样的三次握手、四次挥手、慢启动等特性。使用长连接可以减少三次握手、还可以避免遇上TCP慢启动的拥塞适应阶段等时间,自然可以提高性能。

4.如何设置http短连为长连?    Connection: keep-alive (头部字段)

5.配置完keep-alive后,http连接如何来确定请求或响应的实体边界,即我们怎么知道某一次的请求内容或响应内容已发送完成?

两个方案:

(1)判断传输数据是否达到了Content-Length指示的大小。具体方法:计算实体长度,并通过头部告诉对方。

(2)设置Transfer-Encoding:chunked,进行分块传输:

方案1的问题在于某些情况下实体长度并没那么好获得(如网络响应大文件,获取长度比较耗时,客户端需要等待较长时间),于是有了方案2.

报文格式要求如下:

每个分块包含十六进制的长度值和数据,长度值独占一行,长度不包括它结尾的 CRLF(\r\n),也不包括分块数据结尾的 CRLF。最后一个分块长度值必须为 0,对应的分块数据没有内容,表示实体结束。

相关文章

  • HTTP连接-请求头与响应头

    生成UUID Option Explicit Private Type GUID Data1 As Long ...

  • HTTP协议和socket连接

    HTTP的格式 HTTP请求、响应报文格式 HTTP请求行、请求头、请求体详解 TCP连接、HTTP连接与Sock...

  • http请求头 响应头

    通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。客户端向服务器发送一个请求,请求头包含请求...

  • http 请求头_响应头

    http header 类型 : 通用报头,请求报头,响应报头和实体报头 总结: 请求 = 请求行 + 请求头 +...

  • 软件测试工程师面试题之计算机网络篇

    1.HTTP请求头有哪些? 参考:HTTP请求头与响应头[https://www.jianshu.com/p/7a...

  • 网络教程

    http协议包括 请求协议:请求行、请求头、请求体 响应协议:响应行、响应头、响应体 servlet

  • http协议

    http协议包含内容 请求 请求头 请求行 请求正文 响应 响应头 响应行 响应正文image.png

  • HTTP的头信息包括什么

    HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个...

  • HTTP响应头和请求头信息对照表

    HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个...

  • Nginx笔记 2018-01-11

    request 在nginx中我们指的是http请求,一个http请求,包含请求行、请求头、请求体、响应行、响应头...

网友评论

    本文标题:HTTP连接-请求头与响应头

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