EduCoder 计算机网络实验 HTTP协议分析

这篇博客介绍了EduCoder的计算机网络实验,重点是HTTP协议的分析,包括HTTP请求与响应的组成部分,如请求行、请求头、响应行、响应头和响应正文。实验涉及使用Wireshark抓包工具,学习如何加载和分析HTTP报文,以及如何使用Git保存和推送文件。此外,内容还涵盖了HTTP缓存机制、长文件处理、嵌入对象的请求响应过程以及HTTP认证方式等知识点。
摘要由CSDN通过智能技术生成

第1关:HTTP 基本请求与应答


任务描述

本关任务:能分析出 HTTP 请求与应答中各字段的作用及取值。

相关知识

为了完成本关任务,你需要掌握:

  1. 了解 HTTP协议;
  2. 识别 HTTP 请求报文构成及各字段含义;
  3. 识别 HTTP 响应报文构成及各字段含义;
  4. Wireshark 中加载保存的报文文件。

HTTP请求

HTTP 请求包括三部分,分别是请求行(请求方法)、请求头(消息报头)和请求正文。HTTP 请求第三行为请求正文,请求正文是可选的,它最常出现在 post 请求方式中,get 请求无正文,所以回车之后为空。示例如下:

 

 

 

请求行

由三部分构成:第一部分说明请求类型为 get 方法请求,第二部分(用/分开)是资源 URL,第三部分说明使用的是 HTTP1.1 版本。 GET /success.txt HTTP/1.1\r\n

常见的请求方法如下图所示:

 

 

 

其中用得最多的方法是 get 方法和 post 方法,二者的区别:

  1. get 直接在浏览器输入,post 需要工具发送请求;
  2. get 用 url 或者 cookie 传参,post 将数据放在 body 中;
  3. get 的 URL 有长度限制,post 数据可以非常大;
  4. post 比 get 安全,因为 URL 看不到数据;
  5. get 用来获取数据,post 用来发送数据。

请求头

请求头(消息头)包含(客户机请求的服务器主机名,客户机的环境信息等)。具体内容及含义如下:

  • Accept:用于告诉服务器,客户机支持的数据类型 (例如:Accept:text/html,image/*);
  • Accept-Charset:用于告诉服务器,客户机采用的编码格式;
  • Accept-Encoding:用于告诉服务器,客户机支持的数据压缩格式;
  • Accept-Language:客户机语言环境;
  • Host:客户机通过这个头,告诉服务器想访问的主机名;
  • If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间;
  • Referer:客户机通过这个头告诉服务器,它(客户端)是从哪个资源来访问服务器的(防盗链);
  • User-Agent:客户机通过这个头告诉服务器,客户机的软件环境(操作系统,浏览器版本等);
  • Cookie:客户机通过这个头,将 Coockie 信息带给服务器;
  • Connection:告诉服务器,请求完成后,是否保持连接;
  • Date:告诉服务器,当前请求的时间。

请求正文

浏览器端通过 HTTP 协议发送给服务器的实体数据。get 请求时,通过 url 传给服务器的值 name=dylan&id=110。post 请求时,通过表单发送给服务器的值。也可以为空。

HTTP响应

一个 HTTP 响应代表服务器端向客户端回送的数据,它包括:一个状态行,若干个消息头,以及实体内容。示例如下:

 

 

 

响应行

包括 HTTP 版本HTTP/1.1,状态码200,以及消息OK; 其中 HTTP 响应常见的状态码及其含义如下:

 

 

 

响应头

响应头有若干个字段组合(根据具体情况选择),常见字段及其含义如下: Content-Type:服务器给客户端传回来的文件格式; Content-Length:这个是返回的实体在压缩之之后的长度为 8 byte; Last-Modified:文档的最后改动时间; ETag:这个响应头中有种Weak Tag,值为W/“xxxxx”。它声明Tag是弱匹配的,只能做模糊匹配,在差异达到一定阈值时才起作用; Accept-Ranges:表示该服务器是否支持文件的范文请求; Server:设置服务器名称; Date:当前 GMT 时间,这个就是你请求的东西被服务器创建的时间。

响应正文

响应包含浏览器能够解析的静态内容,例如:HTML,纯文本,图片等等信息。

Wireshark中加载保存的报文文件

利用抓包软件 Wireshark 进行抓包,过滤出 HTTP 协议报文。如下图:

 

  

 

 

查看报文内容:双击展开HTTP请求和响应报文的内容。如下图:

 

  

 

 

为了避免网络原因带来的问题,完成任务时也可以通过加载以前保存的报文文件。如下图所示,在 Wireshark 的菜单中,依次单击“文件”-“打开”,选中需要加载的文件后,单击“打开”按钮文件中的报文就可以加载到 Wireshark 中,同样可以筛选出”HTTP”报文。

 

 

 

使用git将本地文件推送到远程仓库永久保存

评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:

  • 在桌面空白处点击鼠标右键,点击“在此打开终端”,通过代码cd /data/workspace/myshixun/,进入到实训代码仓库;

  • 执行 git 命令:

    
    
     
    1. git pull --unshallow origin master
    2. git add .
    3. git commit -m "Fisrt commit"
    4. git push origin master
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qq_735754647

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

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

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

打赏作者

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

抵扣说明:

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

余额充值