《计算机网络—自顶向下方法》 第二章Wireshark实验1:HTTP

2023-05-16

1.基本HTTP GET/response交互

我们开始探索HTTP,方法是下载一个非常简单的HTML文件
非常短,并且不包含嵌入的对象。执行以下操作:

  • 启动您的浏览器。
  • 启动Wireshark数据包嗅探器,如Wireshark实验-入门所述(还没开始数据包捕获)。在display-filter-specification窗口中输入“http”(只是字母,不含引号标记),这样就在稍后的分组列表窗口中只捕获HTTP消息。(我们只对HTTP协议感兴趣,不想看到其他所有的混乱的数据包)。
  • 稍等一会儿(我们将会明白为什么不久),然后开始Wireshark数据包捕获。
  • 在浏览器中输入以下内容 http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html 您的浏览器应显示非常简单的单行HTML文件。
  • 停止Wireshark数据包捕获。

通过查看HTTP GET和响应消息中的信息,回答以下问题。
在回答以下问题时,您应该打印出GET和响应消息(请参阅Wireshark-入门实验以获取信息),
并指出您在消息中的哪个具体位置找到了回答以下问题的信息。
当您上交作业时,请注明输出,显示您在哪些地方表示了您的答案
(例如,对于我们的课程,我们要求学生用笔标记纸质副本,或用彩色字体在电子副本的中注释文本)。

在这里插入图片描述
在这里插入图片描述
客户机向服务器发出的GET网页请求:

Frame 244: 632 bytes on wire (5056 bits), 632 bytes captured (5056 bits) on interface 0
Ethernet II, Src: 5a:00:dd:d9:3c:7f (5a:00:dd:d9:3c:7f), Dst: XiaomiCo_c3:ad:2c (a8:9c:ed:c3:ad:2c)
Internet Protocol Version 4, Src: 192.168.43.189, Dst: 128.119.245.12
Transmission Control Protocol, Src Port: 50625, Dst Port: 80, Seq: 1, Ack: 1, Len: 578
Hypertext Transfer Protocol
    GET /wireshark-labs/HTTP-wireshark-file1.html HTTP/1.1\r\n
    Host: gaia.cs.umass.edu\r\n
    Connection: keep-alive\r\n
    Cache-Control: max-age=0\r\n
    Upgrade-Insecure-Requests: 1\r\n
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\r\n
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3\r\n
    Accept-Encoding: gzip, deflate\r\n
    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8\r\n
    If-None-Match: "80-59473fb477b28"\r\n
    If-Modified-Since: Wed, 09 Oct 2019 05:59:01 GMT\r\n
    \r\n
    [Full request URI: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html]
    [HTTP request 1/1]
    [Response in frame: 253]

服务器向客户机返回的HTTP响应:

Frame 253: 293 bytes on wire (2344 bits), 293 bytes captured (2344 bits) on interface 0
Ethernet II, Src: XiaomiCo_c3:ad:2c (a8:9c:ed:c3:ad:2c), Dst: 5a:00:dd:d9:3c:7f (5a:00:dd:d9:3c:7f)
Internet Protocol Version 4, Src: 128.119.245.12, Dst: 192.168.43.189
Transmission Control Protocol, Src Port: 80, Dst Port: 50625, Seq: 1, Ack: 579, Len: 239
Hypertext Transfer Protocol
    HTTP/1.1 304 Not Modified\r\n
    Date: Thu, 10 Oct 2019 00:25:50 GMT\r\n
    Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.10 Perl/v5.16.3\r\n
    Connection: Keep-Alive\r\n
    Keep-Alive: timeout=5, max=100\r\n
    ETag: "80-59473fb477b28"\r\n
    \r\n
    [HTTP response 1/1]
    [Time since request: 0.299829000 seconds]
    [Request in frame: 244]
    [Request URI: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html]

1.您的浏览器是否运行HTTP版本1.0或1.1?服务器运行什么版本的HTTP?
答:
浏览器:HTTP/1.1 GET /wireshark-labs/HTTP-wireshark-file1.html HTTP/1.1\r\n
服务器:HTTP/1.1 HTTP/1.1 304 Not Modified\r\n

2.您的浏览器会从接服务器接受哪种语言(如果有的话)?
答:
中文 Accept-Language: zh-CN,zh;q=0.9,en;q=0.8\r\n

3.您的计算机的IP地址是什么? gaia.cs.umass.edu服务器地址呢?
答:
客户机(我的计算机): 192.168.43.189
服务器(gaia.cs.umass.edu): 128.119.345.12
客户机GET请求报文: 244 63.804816 192.168.43.189 128.119.245.12 HTTP 632 GET /wireshark-labs/HTTP-wireshark-file1.html HTTP/1.1
服务器HTTP响应报文:253 64.104645 128.119.245.12 192.168.43.189 HTTP 293 HTTP/1.1 304 Not Modified

4.服务器返回到浏览器的状态代码是什么?
答:
HTTP/1.1 304 Not Modified\r\n

5.服务器上HTML文件的最近一次修改是什么时候?
答:
If-Modified-Since: Wed, 09 Oct 2019 05:59:01 GMT\r\n

6.服务器返回多少字节的内容到您的浏览器?
答:
返回128个字节

7.通过检查数据包内容窗口中的原始数据,你是否看到有协议头在数据包列表窗口中未显示? 如果是,请举一个例子。
答:
【不知道】


2.条件HTTP GET/response交互

大多数Web浏览器使用对象缓存,从而在检索HTTP对象时执行条件GET。
对于chorme浏览器而言,清缓存的方法:
在这里插入图片描述

完成以后,开始进行这个实验,步骤:

  • 启动您的浏览器,并确保您的浏览器的缓存被清除,如上所述。
  • 启动Wireshark数据包嗅探器。
  • 在浏览器中输入以下URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html 您的浏览器应显示一个非常简单的五行HTML文件。
  • 再次快速地将相同的URL输入到浏览器中(或者只需在浏览器中点击刷新按钮)。
  • 停止Wireshark数据包捕获,并在display-filter-specification窗口中输入“http”,以便只捕获HTTP消息,并在数据包列表窗口中显示。

第一次GET请求:

Frame 71: 521 bytes on wire (4168 bits), 521 bytes captured (4168 bits) on interface 0
Ethernet II, Src: 5a:00:dd:d9:3c:7f (5a:00:dd:d9:3c:7f), Dst: XiaomiCo_c3:ad:2c (a8:9c:ed:c3:ad:2c)
Internet Protocol Version 4, Src: 192.168.43.189, Dst: 128.119.245.12
Transmission Control Protocol, Src Port: 51091, Dst Port: 80, Seq: 1, Ack: 1, Len: 467
Hypertext Transfer Protocol
    GET /wireshark-labs/HTTP-wireshark-file2.html HTTP/1.1\r\n
    Host: gaia.cs.umass.edu\r\n
    Connection: keep-alive\r\n
    Upgrade-Insecure-Requests: 1\r\n
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\r\n
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3\r\n
    Accept-Encoding: gzip, deflate\r\n
    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8\r\n
    \r\n
    [Full request URI: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html]
    [HTTP request 1/1]
    [Response in frame: 75]

第二次GET请求:

Frame 274: 633 bytes on wire (5064 bits), 633 bytes captured (5064 bits) on interface 0
Ethernet II, Src: 5a:00:dd:d9:3c:7f (5a:00:dd:d9:3c:7f), Dst: XiaomiCo_c3:ad:2c (a8:9c:ed:c3:ad:2c)
Internet Protocol Version 4, Src: 192.168.43.189, Dst: 128.119.245.12
Transmission Control Protocol, Src Port: 51111, Dst Port: 80, Seq: 1, Ack: 1, Len: 579
Hypertext Transfer Protocol
    GET /wireshark-labs/HTTP-wireshark-file2.html HTTP/1.1\r\n
    Host: gaia.cs.umass.edu\r\n
    Connection: keep-alive\r\n
    Cache-Control: max-age=0\r\n
    Upgrade-Insecure-Requests: 1\r\n
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\r\n
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3\r\n
    Accept-Encoding: gzip, deflate\r\n
    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8\r\n

    If-None-Match: "173-59473fb477358"\r\n
    If-Modified-Since: Wed, 09 Oct 2019 05:59:01 GMT\r\n
    \r\n
    [Full request URI: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html]
    [HTTP request 1/1]
    [Response in frame: 282]

1. 检查第一个从您浏览器到服务器的HTTP GET请求的内容。您在HTTP GET中看到了“IF-MODIFIED-SINCE”行吗?
答:
没有看到
在这里插入图片描述

2. 检查服务器响应的内容。服务器是否显式返回文件的内容? 你是怎么知道的?
答:
返回
在这里插入图片描述

3. 现在,检查第二个HTTP GET请求的内容。 您在HTTP GET中看到了“IF-MODIFIED-SINCE:”行吗? 如果是,“IF-MODIFIED-SINCE:”头后面包含哪些信息?
答:
看到了
If-Modified-Since: Wed, 09 Oct 2019 05:59:01 GMT\r\n
在这里插入图片描述

4. 针对第二个HTTP GET,从服务器响应的HTTP状态码和短语是什么?服务器是否明确地返回文件的内容?请解释。
答:
HTTP/1.1 304 Not Modified\r\n
没有明确的返回内容,因为浏览器在第一次请求的时候保存了网页内容到缓存去了,所以可以直接从本地缓存获得网页内容。


3.检索长文件

在我们到目前为止的例子中,检索的文档是简短的HTML文件。 接下来我们来看看当我们下载一个长的HTML文件时会发生什么。按以下步骤操作:

  • 启动您的浏览器,并确保您的浏览器缓存被清除,如上所述。
  • 启动Wireshark数据包嗅探器
  • 在您的浏览器中输入以下URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html 您的浏览器应显示相当冗长的美国权利法案。
  • 停止Wireshark数据包捕获,并在display-filter-specification窗口中输入“http”,以便只显示捕获的HTTP消息。

客户机发出的GET请求

Frame 26: 547 bytes on wire (4376 bits), 547 bytes captured (4376 bits) on interface 0
Ethernet II, Src: 5a:00:dd:d9:3c:7f (5a:00:dd:d9:3c:7f), Dst: XiaomiCo_c3:ad:2c (a8:9c:ed:c3:ad:2c)
Internet Protocol Version 4, Src: 192.168.43.189, Dst: 128.119.245.12
Transmission Control Protocol, Src Port: 50832, Dst Port: 80, Seq: 1, Ack: 1, Len: 493
Hypertext Transfer Protocol
    GET /wireshark-labs/HTTP-wireshark-file3.html HTTP/1.1\r\n
    Host: gaia.cs.umass.edu\r\n
    Connection: keep-alive\r\n
    Cache-Control: max-age=0\r\n
    Upgrade-Insecure-Requests: 1\r\n
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\r\n
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3\r\n
    Accept-Encoding: gzip, deflate\r\n
    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8\r\n
    \r\n
    [Full request URI: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html]
    [HTTP request 1/1]
    [Response in frame: 37]

服务器的响应

Frame 37: 715 bytes on wire (5720 bits), 715 bytes captured (5720 bits) on interface 0
Ethernet II, Src: XiaomiCo_c3:ad:2c (a8:9c:ed:c3:ad:2c), Dst: 5a:00:dd:d9:3c:7f (5a:00:dd:d9:3c:7f)
Internet Protocol Version 4, Src: 128.119.245.12, Dst: 192.168.43.189
Transmission Control Protocol, Src Port: 80, Dst Port: 50832, Seq: 4201, Ack: 494, Len: 661
[4 Reassembled TCP Segments (4861 bytes): #32(1400), #33(1400), #34(1400), #37(661)]
Hypertext Transfer Protocol
Line-based text data: text/html (98 lines)
  1. 您的浏览器发送多少HTTP GET请求消息?哪个数据包包含了美国权利法案的消息?
    答:
    一个HTTP GET请求消息,
    在这里插入图片描述
    Line-based text data: text/html(98 lines):包含了美国权利法案的消息

  2. 哪个数据包包含响应HTTP GET请求的状态码和短语?
    答:
    HTTP/1.1 200 OK\r\n:请求的状态码:200 短语:OK

  3. 响应中的状态码和短语是什么?
    答:
    状态码 + 短语(用于解释)

  • 2XX Success(成功状态码)
    200 表示从客户端发来的请求在服务器端被正常处理
    204 该状态码表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分
    206 该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求
  • 3XX Redirection(重定向状态码)
    301 永久性重定向
    302 临时性重定向
  • 4XX Client Error(客户端错误状态码)
    400 该状态码表示请求报文中存在语法错误
    401 该状态码表示发送的请求需要有通过HTTP认证的认证信息
    403 该状态码表明对请求资源的访问被服务器拒绝了。
    404 该状态码表明服务器上无法找到请求的资源
  • 5XX Server Error(服务器错误状态码)
    500 该状态码表明服务器端在执行请求时发生了错误。
    503 该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
  1. 需要多少 包含数据的TCP段来执行单个HTTP响应和权利法案文本?
    答:
    【不知道】

4.具有嵌入对象的HTML文档

现在我们已经看到Wireshark如何显示捕获的大型HTML文件的数据包流量,我们可以看看当浏览器使用嵌入的对象下载文件时,会发生什么,即包含其他对象的文件(在下面的例子中是图像文件) 的服务器。
执行以下操作:

  • 启动您的浏览器。
  • 启动Wireshark数据包嗅探器。
  • 在浏览器中输入以下URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html 您的浏览器应显示包含两个图像的短HTML文件。这两个图像在基本HTML文件中被引用。也就是说,图像本身不包含在HTML文件中;相反,图像的URL包含在已下载的HTML文件中。如书中所述,您的浏览器将不得不从指定的网站中检索这些图标。我们的出版社的图标是从 www.aw-bc.com 网站检索的。而我们第5版(我们最喜欢的封面之一)的封面图像存储在manic.cs.umass.edu服务器。
  • 停止Wireshark数据包捕获,并在display-filter-specification窗口中输入“http”,以便只显示捕获的HTTP消息。

在这里插入图片描述
1. 您的浏览器发送了几个HTTP GET请求消息? 这些GET请求发送到哪个IP地址?
答:
三个HTTP GET请求
1:
10 0.435317 192.168.43.189 128.119.245.12 HTTP 547 GET /wireshark-labs/HTTP-wireshark-file4.html HTTP/1.1
2:
17 0.785192 192.168.43.189 128.119.245.12 HTTP 459 GET /pearson.png HTTP/1.1
3:
40 1.200534 192.168.43.189 128.119.245.12 HTTP 473 GET /~kurose/cover_5th_ed.jpg HTTP/1.1
这三个GET请求都是发送到128.119.245.12这个服务器(说明请求的html文档、两张图片都位于这个服务器中)。

2. 浏览器从两个网站串行还是并行下载了两张图片?请说明。
答:
并行
原因:
在这里插入图片描述


5.HTTP认证

最后,我们尝试访问受密码保护的网站,并检查网站的HTTP消息交换的序列。URL http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html 是受密码保护的。用户名是“wireshark-students”(不包含引号),密码是“network”(再次不包含引号)。所以让我们访问这个“安全的”受密码保护的网站。执行以下操作:

  • 请确保浏览器的缓存被清除,如上所述,然后关闭你的浏览器,再然后启动浏览器
  • 启动Wireshark数据包嗅探器。
  • 在浏览器中输入以下URL http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wiresharkfile5.html 在弹出框中键入所请求的用户名和密码。
  • 停止Wireshark数据包捕获,并在display-filter-specification窗口中输入“http”,以便只显示捕获的HTTP消息。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

1. 对于您的浏览器的初始HTTP GET消息,服务器响应(状态码和短语)是什么响应?
答:
初始HTTP GET响应:
21 2.881791 128.119.245.12 192.168.43.189 HTTP 771 HTTP/1.1 401 Unauthorized (text/html)
状态码:401
短语:Unauthorized

2. 当您的浏览器第二次发送HTTP GET消息时,HTTP GET消息中包含哪些新字段?
答:
第三次发送HTTP GET消息(我的第二次是输入错误,第三次才是输入正确):
91 70.476967 128.119.245.12 192.168.43.189 HTTP 544 HTTP/1.1 200 OK (text/html)
状态码:200
短语:OK


参考资料:

https://github.com/moranzcw/Computer-Networking-A-Top-Down-Approach-NOTES

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《计算机网络—自顶向下方法》 第二章Wireshark实验1:HTTP 的相关文章

  • ESP32超详细学习记录:NTP同步时间

    本来想从开源项目找找灵感的 xff0c 但是 xff01 那些代码真烂 xff01 xff01 xff01 xff01 xff01 开源项目免不了的就是抄抄抄代码 xff0c 想知道 NTP 是怎么实现的还要读那一堆烂代码 xff0c 烦
  • VS 2015运行报错

    VS 2015运行报错 xff1a L N K 1104 无法打开文件 kernel 32 lib xff0c L N K 1158 xff1a 无法运行 34 r c e x e xff0c L N K 156 必须定义入口点 34 的问
  • fatal: remote error: access denied or repository not exported: /x264

    root 64 ubuntu opt git clone git git videolan org x264 正克隆到 39 x264 39 fatal remote error access denied or repository no
  • 64位ubuntu虚拟机编译后可运行,32位的arm不能运行的原因

    这两天遇到一个怪事 xff0c 就是在64位虚拟机上使用asn1c工具编译生成的asn源文件 xff0c 交叉编译生成静态库 xff0c 在虚拟机上跑的好好的 xff0c 但是在arm上跑的时候无法解码 xff0c 最后查明原因是asn1c
  • 如何使用交叉编译将大量源文件生成动态库

    今天要把算法包生成一个动态库放在ARM上调用运行 xff0c 特此记录一下给大家参考 1 首先将算法文件夹中的源程序生成 o文件 arm span class token operator span linux span class tok
  • 结构体赋值运行时出现段错误(核心已转储)

    今天给嵌套结构体赋值的时候编译没问题 xff0c 但是运行总是段错误 xff0c 后来发现是忘了分配动态内存 xff0c 记得用calloc分配 xff0c 实际结构体嵌套比较复杂 xff0c 在这里举个简单的例子给大家看看 xff0c 引
  • 如何将一段字符串在word中,自动删除换行,两两之间增加空格键

    我们在拉取十六进制数据分析时 xff0c 经常遇到对方只给一条长长的字符串 xff0c 当然 xff0c 我们可以通过代码的方式进行空格添加 xff0c 方便阅读 xff0c 但是有时候身边没有编译工具或者流程复杂 xff0c 介绍一个用w
  • Python学习第5天——洛谷刷题(顺序结构)、循环

    Python学习第5天 1 洛谷刷题1 1 顺序结构1 2 高精度 2 循环2 1 while循环2 2 for循环2 3 range xff08 xff09 函数2 4 用for循环绘图练习2 4 1 绘制同心圆2 4 2 绘制棋盘格 1
  • 如何定义字符串

    如何定义字符串 一维和二维的都可以 xff1b 一维的情况如下 xff1a 1 xff0c char string0 10 2 xff0c char string1 61 34 prison break 34 3 xff0c char st
  • static全局变量与普通的全局变量的区别?

    1 static全局变量与普通的全局变量有什么区别 xff1f static局部变量和普通局部变量有什么区别 xff1f static函数与普通函数有什么区别 xff1f 答 xff1a 全局变量 外部变量 的说明之前再冠以static 就
  • 动态存储方式和静态存储方式

    从变量的作用域的角度来观察 xff0c 变量可以分为全局变量 和局部变量 xff1b 全局变量都是存放在静态存储区中的 因此它们的生存期是固定的 xff0c 存在于程序的整个运行过程 局部变量 xff0c 如果不专门声明存储类别 xff0c
  • c语言中的return 0有什么用?

    return 0是正常退出 xff0c return 非零是异常退出 xff0c 这是返回给控制台的 xff0c 不在编的程序的控制范围内 xff0c 是给操作系统识别的 xff0c 对你的程序无影响 如果是C中 xff0c 定义void
  • JAVA代码实现字符串匹配(一)——BF、KMP

    话不多说 xff0c 直接进入主题 xff1a 题目描述 xff1a 给定两个字符串text和pattern xff0c 请你在text字符串中找出pattern字符串出现的第一个位置 xff08 下标从0开始 xff09 xff0c 如果
  • pwntools, terminal =‘tmux‘ 报错

    pwntools terminal 61 tmux 报错 Traceback most recent call last File exp py line 4 in gdb attach File home pwn pwn lib pyth
  • 更改手动导入的wsl的默认登录用户

    导入了一个wsl后 xff0c 每次登录都是root用户 xff0c 这个就有点不太好 网上的教程都是说在ps里用分发版的对应exe文件来设置默认用户 xff0c 但是导入的这个wsl我没找到这个exe 找了半天然后看了微软官方的教程 xf
  • v8安装fetch不上

    大佬方案 xff1a 白嫖github action 感谢大佬
  • pwnabletw-babystack

    BabyStack 思路 危险函数 xff0c strcpy 在copy的时候strcpy看似没有问题 xff0c 但是由于src的内容并没有清空 xff0c 还保存着被销毁栈的原有数据 xff0c 而strcpy是根据 34 x00 34
  • vmware win7虚拟机安装vmtools坑

    win7镜像下载 要下带SP1这个记号的 xff0c 表示有service pack 1这个补丁的 一定一定记得 xff0c 不然vmtools装不上 补丁 vmtools安装期间有很多驱动安不上的话 xff0c 首先 xff0c 安装一个
  • Python学习第10天——GUI初步

    Python学习第10天 1 多个库2 所写的代码 1 多个库 图形开发界面的库 Tkinter xff1a Tkinter 模块 Tk 接口 是 Python 的标准 Tk GUI 工具包的接口 Tk 和 Tkinter 可以在大多数的
  • IO扩展芯片PCF8574的中断引脚的理解

    The PCF8574 device provides an open drain output INT that can be connected to the interrupt input of a microcontroller A

随机推荐

  • java中的字符转换为数字 十进制转为二进制

    java中的字符转整数 span class token comment 方式1 span span class token keyword char span c span class token operator 61 span spa
  • xshell登录 安卓手机

    局域网远程连接手机 通过ssh登录到手机 Termux安装Termux安装openssh启动sshd服务配置登录密钥方法1方法2 手机查看当前用户名手机查看当前ip电脑cmd ssh到手机电脑xshell连接到ssh手机 通过ssh登录到手
  • vscode插件之Linux相关插件

    Linux相关插件 1 Remote SSH 远程连接插件2 shell format 代码格式化工具3 shellman 代码语法提示4 Linux ansible 语法提示5 皮肤设置5 1 Dracula Official5 2 ta
  • linux-优化 PS1

    PS1 记录 span class token builtin class name export span span class token assign left variable span class token environmen
  • cmd 设置 路由 route

    查询路由 route print 删除单条路由 route delete span class token number 192 168 span 4 0 span class token punctuation span 网络地址 spa
  • samba 共享文件 Linux 为共享端 windows 为客户端

    1 安装samba yum span class token parameter variable y span span class token function install span samba 2 创建新用户 创建共享目录 配置s
  • dell 服务器 重装Linux系统

    dell 服务器 从U盘启动安装linux系统 工具 xff1a linux 系统 U盘启动盘 参考博客 ultraISO 制作 linux系统U盘启动盘 U盘启动盘接入dell服务器USB接口 尽量拆入 服务器后面的u口 1 开机启动de
  • LINUX安装openssl

    openssl 官网下载 https www openssl org source old 1 解压openssl包 xff1a span class token function tar span span class token par
  • 设置win服务器代理

    在Windows系统下 xff0c 可以使用以下命令设置代理地址 开启和关闭代理 xff1a 1 设置代理 netsh winhttp span class token builtin class name set span proxy m
  • docker frp搭建http代理

    docker compose yml version span class token string 34 2 34 span services frpc image alpine latest hostname frpc restart
  • Proxmox VE 套娃做pve集群实验ceph搭建及ha迁移 超融合

    纯粹是为了折腾 xff1a xff09 1 环境介绍 存储也可以说是超融合 OS xff1a Virtual Environment 6 2 4 pve231 主机 pve118 172 16 1 118 虚拟机1 pve119 172 1
  • docker-compose搭建lnmp环境

    使用命令创建文件和文件夹 span class token function mkdir span p span class token punctuation span php nginx span class token punctua
  • Qt Q_ENUM使用 枚举字符串互转

    目录 1 简述2 Q ENUM用法2 1 声明使用2 2 测试例子 3 用模板实现一个字符串枚举互转3 1代码3 2 用法示例 1 简述 数据库里用到了枚举的存储 xff0c 比如一个设备有两个状态 xff0c 保持数据库和代码的可读性 x
  • Update standard folders to current languages?选择Update Names重启后的Ubuntu 桌面空白 异常及解决办法

    在新安装完Ubuntu后 xff0c 如果想要得到中文的界面就需要进行系统环境的语言设置 xff0c 但是操作不当会让Ubuntu桌面的图标不再显示在桌面上 下面演示错误示范 xff1a 楼主安装完成Ubuntu后 xff0c 本来桌面上有
  • 1002 A+B for Polynomials (多项式相加)

    This time you are supposed to find A 43 B where A and B are two polynomials Input Specification Each input file contains
  • 使用Rust开发编译系统(C以及Rust编译的过程)

    C以及Rust编译的过程 主流的编译器GCCLLVM C语言编译过程LLVM编译过程将C源码转为LLVM IR将IR转化为BitCode将BitCode转为目标平台汇编码执行BitCode Rust编译过程下一步做什么 主流的编译器 GCC
  • pytesseract在代码中完成中文的识别

    pytesseract在代码中完成中文的识别 小tips text span class token operator 61 span pytesseract span class token punctuation span image
  • nohup命令输出到指定的文件, 而不是默认的nohup.out

    nohup命令输出到指定的文件 xff0c 而不是默认的nohup out nohup 默认输出到当前目录的nohup out xff0c 可以通过下面的命令来制定nohup输出位置 nohup some command amp gt NE
  • 51Nod 2582 最短区间 c/c++题解

    题目描述 现在给定一个整数s以及一个长度为n的整数数列a 0 a 1 a 2 a 3 a n 1 全为正数 xff0c 请你求出总和不小于s的连续子序列的长度的最小值 如果解不存在 xff0c 则输出0 输入 第一行 xff1a 两个整数
  • 《计算机网络—自顶向下方法》 第二章Wireshark实验1:HTTP

    1 基本HTTP GET response交互 我们开始探索HTTP xff0c 方法是下载一个非常简单的HTML文件 非常短 xff0c 并且不包含嵌入的对象 执行以下操作 xff1a 启动您的浏览器 启动Wireshark数据包嗅探器