Overview

HTTP(HyperText Transfer Protocol),一个应用层协议,是Web的核心。在RFC文档中有相关定义[RFC 1945]和[RFC 2616]。HTTP包括两个程序:客户端程序和服务端程序,它们执行不同的终端系统,通过交换HTTP消息进行交流。HTTP协议定义了这些消息的结构以及客户端和服务端如何交换这些消息。

回顾一些Web专用术语。Web page(也被称作document)包括了若干个对象。一个对象就是一个文件,例如一个HTML文件、一个JPEG图像、一个JAVA小程序或者一段视频,一个对象可通过单个URL来寻址。大多数的web pages包括一个HTML文件作文基础和其他数个被引用的对象组成。加入一个Web page包括一个HTML文本加上5个JPEG图像,那么这个Web page就有6个对象。作为基础的HTML文件通过对象的URL来引用页面中的其他的对象。

URL的组成成分

URL包括两个组成部分,容纳对象的服务器的主机名以及对象的路径名

例如http://www.someSchool.edu/someDepartment/picture.gif

www.someSchool.edu就是主机名,/someDepartment/picture.gif就是路径名

Web浏览器实现了HTTP的客户端,常见的浏览器有Chrome、Firefox、IE;Web服务器实现了HTTP的服务端,常见的有Apache和Microsoft Internet Information Server。

HTTP下的传输层协议为TCP。HTTP客户端先与服务端建立一个TCP连接,一旦连接建立,浏览器和服务器就会通过它们各自的socket接口访问TCP。socket接口相当于进程与TCP连接之间的一扇门。可以结合我的socket编程来看。

客户端向它的socket接口发送HTTP请求并且从socket接口中接收HTTP响应。相似地,HTTP服务端从服务端的socket接口接收请求消息,并且向socket接口发送响应消息。TCP协议为HTTP提供可靠的数据传输服务,这意味着HTTP请求和响应最终都会完整地分别到达服务端和客户端。保证可靠传输是TCP的工作,HTTP不需要关心这个。

需要注意的是,服务器将请求的文件发送到客户端,而不存储有关客户端的任何状态信息。如果一个特定的客户端在几秒钟内两次请求相同的对象,服务器不会因为它刚才提供过这个相同的对象就不去响应客户端;相反,服务器重新发送对象,因为它已经完全忘记了之前做了什么。因为HTTP服务器不维护有关客户端的信息,所以HTTP被认为是一种无状态协议。我们还注意到,Web使用cs应用程序体系结构,Web服务器总是打开的,具有固定的IP地址,它为来自可能数百万不同浏览器的请求提供服务。

非持久连接和持久连接

在许多互联网应用程序中,客户端和服务器通信的时间较长,客户端发出一系列请求,服务器对每个请求作出响应。根据应用程序和应用程序的使用方式,可以连续、定期或间歇地发出一系列请求。当这种客户机-服务器交互通过 TCP 发生时,应用程序开发人员需要做出一个重要的决定——应该通过单独的 TCP 连接发送每个请求/响应对,还是应该通过相同的 TCP 连接发送所有请求及其相应的响应?在前一种方法中,应用程序使用非持久性连接; 在后一种方法中,使用持久性连接。为了深入理解这个设计问题,让我们研究一下特定应用程序(即 HTTP)上下文中持久连接的优缺点,HTTP 既可以使用非持久连接,也可以使用持久连接。尽管 HTTP 在默认模式下使用持久连接,但可以将 HTTP 客户端和服务器配置为使用非持久连接。

非持久连接的HTTP

先来看看使用非持久连接从服务端到客户端传输一个web页面有哪些步骤。假设web页面包括一个基本的HTML页面和10个JPEG图像,一共11个对象存放在同一个服务器中。

Further suppose the URL for the base HTML file is http://www.someSchool.edu/someDepartment/home.index Here is what happens:

  1. The HTTP client process initiates a TCP connection to the server www.someSchool.edu on port number 80, which is the default port num-ber for HTTP. Associated with the TCP connection, there will be a socket at the client and a socket at the server.

  2. The HTTP client sends an HTTP request message to the server via its socket. The request message includes the path name /someDepartment/home.index. (We will discuss HTTP messages in some detail below.)

  3. The HTTP server process receives the request message via its socket, retrieves the object /someDepartment/home.index from its storage (RAM or disk), encapsulates the object in an HTTP response message, and sends the response message to the client via its socket.

  4. The HTTP server process tells TCP to close the TCP connection. (But TCP doesn’t actually terminate the connection until it knows for sure that the client has received the response message intact.)

  5. The HTTP client receives the response message. The TCP connection termi-nates. The message indicates that the encapsulated object is an HTML file. The client extracts the file from the response message, examines the HTML file, and finds references to the 10 JPEG objects.

  6. The first four steps are then repeated for each of the referenced JPEG objects

以上步骤中客户端是并行地还是串行地通过10个TCP连接得到10张JPEG图像,这是被有意模糊的。事实上用户可以配置浏览器来控制并行的程度。在默认模式下,大多数浏览器开放5至10个并行的TCP连接,每个TCP连接进行一次request-respond传输。如果用户喜欢,可以把并行数设置为1,那么就是串行了。

接下来,我们针对客户端请求一个基础HTML文件进行一次粗略的时间(包括了请求和接受一个HTML文件的时间)计算。定义一个时间单位为RTT(round-trip time,即来回的时间)。首先,当用户点开一个超链接时,浏览器会先在客户端和服务端之间初始化一个TCP连接,它包括了3次握手。

3次握手

1.客户端发送一个小的TCP段给服务端

2.服务端确认这个TCP段后,通过一个小的TCP段进行响应

3.客户端向服务端确认

前两次握手用了一个RTT。前两次握手之后,客户端给TCP连接发送HTTP请求消息,这个消息整合了第三次握手(也就是客户端向服务端确认)。一旦请求消息到达服务端,服务端就会向TCP连接发送HTML文件。这个过程中,HTTP请求/响应消耗了另一个RTT。因此,整个响应时间包括了两个RTT加上服务端发送HTML文件的时间。

持久连接的HTTP

非持久连接有一些缺点。第一,一个全新的连接需要被建立和维持每一个受请求的对象。对于每一个连接,TCP需要为其分配缓存,并且TCP变量必须同时存在于客户端和服务端中。这对于一个可能需要同时处理成百上千个请求的Web服务器来说是一个非常大的负担。第二,每一个对象都会承受两个RTT的传递延迟,一个RTT用于建立TCP连接,一个RTT用于请求和接收对象。

对于持久连接,服务器在发送响应请求后会维持TCP连接处于打开状态。相同的客户端和服务端之间的后续请求和响应可以通过相同的连接发送。特别的是,可以通过一个持久的TCP连接发送整个Web页面。此外,可以通过一个持久性TCP连接将保存在同一服务器上的多个web页面从服务器发送到同一客户端。这些对象的请求可以连续不断地进行,而无需等待挂起请求的回复(流水线处理),也就是说可以不用等待服务端的响应而连续不断地发出请求。通常,HTTP服务器在一定时间内未使用连接时关闭连接(这个时间是可以配置的)。当服务器接收到连续的请求时,它会连续发送对象。HTTP的默认模式使用具有流水线处理的持久连接。

HTTP消息的格式

在RFC文档[RFC 1945;RFC 2616]中包括了对HTTP消息格式的解释。有两种HTTP消息,请求消息(request message)和响应消息(response message)。

HTTP请求消息

这是一个典型的HTTP请求消息

GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/5.0
Accept-language: fr

我们可以从中学到很多。第一,这个消息是用普通的ASCII文本来写的,所以普通的懂电脑的人就能读懂它。其次,我们看到消息由五行组成,每行后面跟一个回车符和一个换行符。最后一行之后是一个额外的回车符和换行符。虽然这个请求有5行,一个请求消可以有更多的行数或者少到1行。HTTP请求消息的第一行叫做请求行(request line);接下来的各行被称为标题行(header lines)。

请求行包括三个字段,方法字段、URL字段和HTTP版本字段。GET /somedir/page.html HTTP/1.1,方法字段包括数个不同的值,GET、POST、HEAD、PUT和DELETE。在HTTP请求消息中最主要使用GET方法。GET方法在浏览器请求一个对象时使用,所请求的对象在URL字段中标识。在这个例子中,浏览器请求的对象是/somedir/page.html。HTTP版本是HTTP/1.1。

接下来看标题行(header lines)。

  • Host:www.someschool.edu指定了对象所在的主机。你可能认为这个标题行是没啥用的,因为在TCP连接中已经指定了主机名。但是,实际上在host标题行中的信息会被Web代理缓存(Web proxy caches)需要。

  • 通过包含Connecion:close标题行,浏览器不想要持久连接;它想要服务端在发送受请求的对象后就关闭TCP连接。

  • User-agent:这一行解释了用户代理(user agent),也就是发送请求给服务端的浏览器的类型。这里的用户代理为Mozilla/5.0,一个火狐浏览器。这一标题行非常有用,因为根据不同的用户代理,服务端可以将同一对象的不同版本发送给不同类型的用户代理。

  • Accept-language:这一标题行表示用户希望接收对象的法语版本,如果服务器上存在这样的对象; 否则,服务器应该发送其默认版本。Accept-language: 头只是 HTTP 中可用的许多内容协头之一。

看完这个例子后,我们来看一看请求消息的一般格式。如图所示

cr和lf表示carriage return和line feed即回车和换行。

你或许已经注意到了,在空行之后还有一个实体(Entity body)。在GET方法中,实体是空的,不过在POST方法中,会用到实体。当用户填写表单时常常会用到POST方法,例如当用户在搜索引擎中搜索单词时。通过POST消息,用户仍然从服务端请求了一个web页面,但是web页面上特定的内容会随着用户的输入改变而改变。假如请求头中的方法字段的值为POST,那么实体中包含了用户在表单字段中填写的内容。

不过填写表单中使用POST是非必需的。相反,HTML表单通常使用 GET方法,并在受请求的URL中包括了在表单字段中输入的数据。例如,如果一个表单使用GET方法,有两个字段,并且这两个字段的输入是monkeys和bananas,那么URL的结构将是www.somesite.com/animalsearch?monkeys&bananas。在你的日常网络冲浪中,你可能已经注意到了这类扩展URL。

HEAD 方法类似于 GET 方法。当服务器用 HEAD 方法接收到一个请求时,它会用 HTTP 消息进行响应,但是会省略被请求的对象。应用程序开发人员经常使用 HEAD 方法进行调试。PUT 方法通常与 Web 发布工具一起使用。它允许用户将对象上传到特定 Web 服务器上的特定路径(目录)。需要将对象上载到 Web 服务器的应用程序也使用 PUT 方法。DELETE 方法允许用户或应用程序删除 Web 服务器上的对象。

HTTP响应消息

HTTP/1.1 200 OK
Connection: close
Date: Tue, 09 Aug 2011 15:44:04 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 09 Aug 2011 15:11:03 GMT
Content-Length: 6821
Content-Type: text/html
​
(data data data data data ...)

让我们看一看响应消息。它包含三个部分:

  • 一个状态行(status line)

  • 6个标题行(header line)

  • 实体(entity body)(data data data data data...)

实体是响应消息的重要部分,它包含了受请求的对象。

状态行有3个字段:协议版本字段、状态码和一个相应的状态信息。在这个示例中,协议版本字段为HTTP/1.1,状态码为200,相应的状态信息为OK(i.e. the server has found, and is sending, the requested object)。对于状态码和相应的状态信息可以参考百度百科。

接下来是标题行。

  • Connetion: close告诉客户端TCP连接将在HTTP响应消息发送出后关闭。

  • Date:这行表示服务器创建并发送 HTTP 响应的时间和日期。请注意,这不是创建或最后修改对象的时间;而是服务器从其文件系统中检索对象、将对象插入响应消息并发送响应消息的时间。

  • Server:标题行表示响应消息由Apache Web server生成,它类似于请求消息中的User-agent:

  • Last-Modified:指示创建或最后修改对象的时间和日期。它对于本地客户端和网络缓存服务器(代理服务器)的对象缓存至关重要。

  • Content-Length:指示要发送的对象的字节数

  • Content-Type:表示实体中的对象是 HTML 文本(对象类型由 Content-Type:这行正式表示,而不是由文件扩展名表示。)

响应消息的一般格式。

如何发送一个HTTP请求?

我们可以在命令行中输入以下命令

telnet gaia.cs.umass.edu 80
#然后按ctrl+],输入请求消息,输入完后按两下回车
GET /kurose_ross/interactive/index.php HTTP/1.1
Host: gaia.cs.umass.edu

这段命令打开了一个TCP连接,将客户端与主机gaia.cs.umass.edu的 80端口连上,然后发送了HTTP请求消息。

如果没出现什么错误的话,可以看到一个包含着基本HTML文件的响应消息。

用户-服务器交互:Cookies

我们之前提到了HTTP是无状态的,这简化了服务端的设计,并允许工程时建立高性能的Web服务器,可以处理成千上万的 TCP 同时连接。然而,Web站点还是很需要识别用户的,或是服务器想要限制用户的访问或者它希望将内容与用户相关联。cookies在RFC 6265中定义,用于网站追踪用户。

cookies技术有4个组成部分:

  1. HTTP响应消息中的cookie标题行

  2. HTTP请求消息中的cookie标题行

  3. 用户终端系统中保存的cookie文件,受用户的浏览器管理

  4. 一个Web网站的后端数据库

下图为cookies的工作原理示意图。假设有一位用户,他第一次连接Amazon.com,并且已经访问过eBay。

The Conditional GET

由于原服务器的对象或许会更新,那么在代理服务器中的拷贝或许会过时。不过HTTP有一个机制,可以让缓存服务器去核实拷贝的对象是否过时,这个机制就叫做conditional GET。什么样的GET请求消息可以被称为conditional GET呢?需要满足两个条件

  • 请求消息使用GET方法

  • 请求消息包含If-Modified-Since:这个标题行

让我们通过一个示例来理解条件GET的工作过程

Web缓存(代理服务器)中没有关于浏览器请求的拷贝,web代理缓存向web服务器发送请求消息。

GET /fruit/kiwi.gif HTTP/1.1
Host: www.exotiquecuisine.com

web服务器返回带有受请求的对象的响应消息给缓存。

HTTP/1.1 200 OK
Date: Sat, 3 Oct 2015 15:39:29
Server: Apache/1.3.0 (Unix)
Last-Modified: Wed, 9 Sep 2015 09:23:24
Content-Type: image/gif
​
(data data data data data ...)

缓存器再把对象发送给浏览器,并在本地存储对象的拷贝。重要的是,web缓存也存储了最后一次修改的日期Last-Modified:

一周以后,另外一个浏览器通过缓存服务器请求相同的对象,虽然对象就在缓存中,但是在过去的一周,对象可能已经在Web服务器中更新了,那么缓存服务器就要进行一次检查,使用conditional GET检查对象是否过时。缓存服务器发送:

GET /fruit/kiwi.gif HTTP/1.1
Host: www.exotiquecuisine.com
If-modified-since: Wed, 9 Sep 2015 09:23:24

请注意,If-Amendment-since:标题行的值与服务器一周前发送的 Last-Amendment:标题行的值完全相同。这个条件 GET 告诉服务器只有在对象在指定日期之后被修改的情况下才发送对象。假设该对象自2015年9月9日09:23:24以来未被修改。然后,Web 服务器向缓存发送响应消息:

HTTP/1.1 304 Not Modified
Date: Sat, 10 Oct 2015 15:39:29
Server: Apache/1.3.0 (Unix)
​
(empty entity body)

我们看到,在响应条件 GET 时,Web 服务器仍然发送响应消息,但是在响应消息中不包括请求的对象。包含请求的对象只会浪费带宽和增加用户感知的响应时间,特别是在对象很大的情况下。请注意,最后一条响应消息在状态行中有304 Not Amendment,它告诉缓存它可以继续前进并将其(代理缓存的)对象的缓存副本转发给请求浏览器。

HTTP/2

HTTP/2在2015年标准化,是自1997年标准化的HTTP/1.1的HTTP的最新版本。目前HTTP/2已经被广泛应用。

HTTP/2的首要目标是降低用户感知的延迟,通过让请求和响应能够在单个TCP连接上多路复用,提供请求优先级和服务器推送,并提供高效的 HTTP 头域(header fields)压缩。HTTP/2并没有改变HTTP方法、状态码、URL或者头域(header fields),取而代之的,它改变了数据是如何组织和如何在客户端和服务端之间运输的。(帧、优先级、压缩、二进制编码等)

framing

HTTP/2将HTTP消息分成许多个独立的微小的帧,通过帧的交叉传输,减少用户感知到的延迟。例如一个Web页面有1个大的视频和其他8个小的对象。假设一个帧为5个长度,这段视频有1000帧,每一个小的对象都包含2帧。当帧交叉传输时,视频的前几帧被传输完后就接着传输其他小的对象,那么用户感知到的延迟就低。如果不用多路复用(交叉)的话,其他小的对象需要在传输完视频的1000个帧后才能获得传输。

除了将每个 HTTP 消息分解为独立的帧之外,framing sublayer还对帧进行二进制编码。二进制协议解析起来更有效率,可以产生更小的帧,也更不容易出错。

响应消息优先级和服务器推送

消息优先级允许开发人员定制请求的相对优先级,以更好地优化应用程序性能。正如我们刚刚了解到的,framing 子层将消息组织成发送给同一请求者的并行数据流。当客户机向服务器发送并发请求时,它可以通过为每条消息分配1到256之间的权重来对请求的响应进行优先排序。数字越大表示优先级越高。使用这些权重,服务器可以首先发送具有最高优先级的响应的帧。

除此之外,客户端还通过指定其所依赖的消息的 ID 来声明每个消息对其他消息的依赖性。HTTP/2的另一个特性是服务器能够为单个客户端请求发送多个响应。也就是说,除了对原始请求的响应之外,服务器还可以将其他对象推送到客户机,而客户机不必请求每个对象。这是可能的,因为 HTML 基页指出了完全呈现网页所需的对象。因此,服务器不必等待这些对象的 HTTP 请求,而是可以分析 HTML 页面,确定需要的对象,并在接收这些对象的显式请求之前将它们发送给客户机。服务器推送消除了由于等待请求而导致的额外延迟。

HTTP LAB

lab的URL Jim Kurose Homepage

1.基本的HTTP GET/response 互动

使用wireshark对HTTP请求和响应进行抓取。

用浏览器访问http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html

七个问题

  1. Is your browser running HTTP version 1.0, 1.1, or 2? What version of HTTP is the server running?

  2. What languages (if any) does your browser indicate that it can accept to the server?

  3. What is the IP address of your computer? What is the IP address of the gaia.cs.umass.edu server?

  4. What is the status code returned from the server to your browser?

  5. When was the HTML file that you are retrieving last modified at the server?

  6. How many bytes of content are being returned to your browser?

  7. By inspecting the raw data in the packet content window, do you see any headers within the data that are not displayed in the packet-listing window? If so, name one.

1.browser: HTTP/1.1 server: HTTP/1.1

2.Accept-Language: en,zh-CN;q=0.9,zh;q=0.8\r\n浏览器可以接受英文和中文。

3.绿色部分第一行的source(打码部分)代表我的ip地址。destination表示服务器的ip地址。

4.200 OK

5.Last-Modified: Thu, 23 Mar 2023 05:59:01 GMT\r\n

6.Content-Length: 128\r\n

7.

需要注意的是,如果接收到的response的状态码为304 Not Modified,说明客户端的缓存是最新的,没有必要更新。这意味着先前已经访问过这个web页面,浏览器已经缓存了这个 web页面。需要清理浏览器缓存。

2.The HTTP Conditional GET/response interaction

  • Start up your web browser, and make sure your browser’s cache is cleared, as discussed above.

  • Start up the Wireshark packet sniffer

  • Enter the following URL into your browser http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html Your browser should display a very simple five-line HTML file.

  • Quickly enter the same URL into your browser again (or simply select the refresh button on your browser)

  • Stop Wireshark packet capture, and enter “http” (again, in lower case without the quotation marks) in the display-filter-specification window, so that only captured HTTP messages will be displayed later in the packet-listing window.

4个问题。

  1. Inspect the contents of the first HTTP GET request from your browser to the server. Do you see an “IF-MODIFIED-SINCE” line in the HTTP GET?

  2. Inspect the contents of the server response. Did the server explicitly return the contents of the file? How can you tell?

  3. Now inspect the contents of the second HTTP GET request from your browser to the server. Do you see an “IF-MODIFIED-SINCE:” line in the HTTP GET[1]? If so, what information follows the “IF-MODIFIED-SINCE:” header?

  4. What is the HTTP status code and phrase returned from the server in response to this second HTTP GET? Did the server explicitly return the contents of the file? Explain.

1.No,I don't.

2.Yes.Line-based text data: text/html (10 lines) shows the returned contents of the file explicitly.

3.Yes.The information following the If-Modified-Sinceheader line is the last modified date of the server requested object.

4.304 Not Modified.No,because the browser has cached the requested object and meanwile,the server doesn't modify the object.

3.检索长文档Retrieving Long Documents

之前的HTML文件都是短且简单的,这次试试长的。

  • Start up your web browser, and make sure your browser’s cache is cleared, as discussed above.

  • Start up the Wireshark packet sniffer

  • Enter the following URL into your browser Historical Documents:THE BILL OF RIGHTS Your browser should display the rather lengthy US Bill of Rights.

  • Stop Wireshark packet capture, and enter “http” in the display-filter-specification window, so that only captured HTTP messages will be displayed.

可以看到HTTP GET消息和对HTTP GET请求的多个包的TCP响应。

为什么会有多个包的TCP响应呢?HTTP响应消息包含一个状态行、数个标题行、一个空行和实体。在这个例子中,实体包含着整个受请求的HTML文件。但是这个HTML文件太长了,4500字节对于一个TCP包来说过于大了,所以会被拆分成多个TCP片段,每个片段包含在单独的TCP段(TCP segment)中。在新版的wireshark中,TCP段被定义为独立的包,并且单个HTTP响应在多个TCP数据包上被分段的事实由Wireshark显示器的Info列中的“重新组装的PDU的TCP段”指示。

问题:

  1. How many HTTP GET request messages did your browser send? Which packet number in the trace contains the GET message for the Bill or Rights?

  2. Which packet number in the trace contains the status code and phrase associated with the response to the HTTP GET request?

  3. What is the status code and phrase in the response?

  4. How many data-containing TCP segments were needed to carry the single HTTP response and the text of the Bill of Rights?

1.Only one.This one.

2.

3.200 OK

4.4 TCP segments.

4.HTML Documents with Embedded Objects

  • Start up your web browser, and make sure your browser’s cache is cleared, as discussed above.

  • Start up the Wireshark packet sniffer

  • Enter the following URL into your browser

  • Lab2-4 file: Embedded URLs

  • Your browser should display a short HTML file with two images. These two images are referenced in the base HTML file. That is, the images themselves are not contained in the HTML; instead the URLs for the images are contained in the downloaded HTML file. As discussed in the textbook, your browser will have to retrieve these logos from the indicated web sites. Our publisher’s logo is retrieved from the gaia.cs.umass.edu web site. The image of our 8th edition cover (one of our favorite covers) is stored at a server in France.

  • Stop Wireshark packet capture, and enter “http” in the display-filter-specification window, so that only captured HTTP messages will be displayed.

  1. How many HTTP GET request messages did your browser send? To which Internet addresses were these GET requests sent?

  2. Can you tell whether your browser downloaded the two images serially, or whether they were downloaded from the two web sites in parallel? Explain.

1.three.分别是128.119.245.12|128.119.245.12|178.79.137.164

2.Yes,they are downloaded in parallel for their different IP addresses.

5.HTTP Authentication

1.HTTP/1.1 401 Unauthorized\r\nSo the answer is 401 Unauthorized.

2.Authorization: Basic d2lyZXNoYXJrLXN0dWRlbnRzOm5ldHdvZWs=\r\n

HTTP计算机网络自顶向下+wireshark lab相关推荐

  1. 2021-09-13计算机网络自顶向下WireShark Lab(三)DNS

    win10 使用 cmd 下的 nslookup 得在管理员模式下运行. Name和Value的的具体含义取决于Type: Type = A,则Name是主机名,Value是该主机名对应的IP地址. ...

  2. 计算机网络自顶向下 Wireshark实验 Lab4 TCP

    计算机网络自顶向下 Wireshark实验 Lab4 TCP 不写答案,本文章只记录 任务 和 问题 开始Wireshark Lab TCP 先在Wireshark Lab官网下载相应文档:https ...

  3. 《计算机网络自顶向下》Wireshark实验 Lab11 802.11 WiFi

    文章目录 专栏博客链接 前引 Lab11 802.11 WiFi 查阅Wireshark Lab官网 获取Lab文档 Q&A 1 所作工作 Q&A 1 Q&A 2 所作工作 Q ...

  4. 《计算机网络自顶向下》Wireshark实验 Lab4 TCP

    文章目录 专栏博客链接 前引 Lab4 TCP 查阅Wireshark Lab官网 获取Lab文档 Q&A 1 所作工作 Q&A 1 专栏博客链接 <计算机网络自顶向下>W ...

  5. 《计算机网络自顶向下》Wireshark实验 Lab1 Getting Started

    文章目录 专栏博客链接 前引 Lab1 Getting Started 查阅Wireshark Lab官网 获取Lab文档 利用Office Word翻译查阅Lab文档 下载Wireshark 熟悉W ...

  6. 《计算机网络自顶向下》Wireshark实验 Lab8 IP

    文章目录 专栏博客链接 前引 Lab8 IP 查阅Wireshark Lab官网 获取Lab文档 Q&A 1 所作工作 Q&A 1 Q&A 2 所作工作 Q&A 2 结 ...

  7. 《计算机网络—自顶向下方法》 Wireshark实验(二):HTTP协议分析

    HTTP 协议工作于客户端-服务端架构上.浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求. WEB 服务器有:Apache服务器,IIS服务器(Inter ...

  8. 计算机网络自顶向下方法实验报告,计算机网络自顶向下方法试验三报告.doc

    计算机网络自顶向下方法试验三报告 陕西师范大学 计算机网络 实验报告 年级: 2010级 姓名: 陈翠萍 学号: 实验日期: 2012.9.24 实验名称:Wireshark Lab: HTTP 1至 ...

  9. 计算机网络自顶向下做题总结一(应用层)

    文章目录 计算机网路自顶向下做题总结一 第一章 1.1.复习题 1.2.作业题 1.3.第一次实验wireshark入门 第二章 2.1.telnet在windows使用 2.2.SMTP协议和HTT ...

最新文章

  1. Ubuntu 14.04 64bit上升级Intel官方集显更新驱动程序
  2. Android 最简单的基于FFmpeg的移动端例子:Android HelloWorld
  3. 【mysql】时间戳
  4. SAP CRM category search的实现
  5. java安卓的xml布局,android – 将xml布局更改为java代码
  6. 虚拟化顶级技术会议KVM Forum演讲分享 | 移动云KVM共享云盘技术实践
  7. ipmitool 设置网关_使用ipmitool 修改管理卡IP等
  8. 树莓派百度云下载工具bypy
  9. 翻译任务中的BPE词表实践总结
  10. 极客学院30天免费vip
  11. 如何选择毕业设计的题目?
  12. 亲身经历:程序人生路上的荆棘与感动
  13. POI单元格合并(合并后边框空白修复)、自动列宽、水平居中、垂直居中、设置背景颜色、设置字体等常见问题
  14. 从作者的角度去阅读一本书-一种全新的阅读体验
  15. 使用GitHub进行团队合作
  16. 传奇该怎么选择服务器?
  17. 决胜机房奥林匹克之LCA篇
  18. 杭州UI设培训学校哪家好
  19. Android简易图片管理器,一个简单仿微信朋友圈的图片查看器 PhotoViewer
  20. apple watch和小米手表的操作逻辑对比:

热门文章

  1. C++读写ini文件
  2. 工作四年,分享50个让你代码更好的小建议
  3. Java-面向对象练习-01
  4. 指尖创客机器人_IRM国际机器人创客选拔赛落幕 30名小选手将代表重庆前往上海参赛...
  5. 成员变量、类变量、局部变量的区别
  6. jmu_python_最大公约数最小公倍数
  7. 18awg线材最大电流_说一说车用电缆线束的金属线材
  8. 预案三板斧之降级大法
  9. 冰冰学习笔记:进程概念
  10. phpstorme -》Typo: In word 拼写检查