SchoolWork-LaTeX/计算机网络/实验报告/实验12.tex

136 lines
6.0 KiB
TeX
Raw Normal View History

\documentclass[../public/实验报告模板]{subfiles}
\renewcommand{\mydate}{2023年11月17日}
\renewcommand{\mylabname}{超文本传输协议HTTP}
\renewcommand{\mychapternum}{12}
\begin{document}
\mytitle
\begin{enumerate}
\myitem{实验目的}{
\item 掌握HTTP的报文格式
\item 掌握HTTP的工作原理
\item 掌握HTTP常用方法
}
\myitem{实验设备或环境}{
\item 采用网络拓扑结构一
}
\myitem{实验原理}{
\item 体系结构
\item 万维网文档
\item HTTP协议简介
\item HTTP报文格式
\item HTTP方法
\item HTTP状态码
\item 持久与非持久连接
\item HTTP代理服务器
}
\myitemx[label=练习\arabic*\ ]{实验步骤}{
\item 页面访问
\item 页面提交
\item 获取页面信息
\item 较复杂的页面访问
}
\myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
\item 页面访问
本练习使用HTTP协议的GET方法这种方法的作用是从服务器请求一个文档。
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{c|c}
\toprule
主机名 & 172.16.0.253 \\
URL & http://172.16.0.253/experiment \\
服务器类型 & Apache/2.2.3 (CentOS) \\
传输文本类型 & text/html \\
访问时间 & Fri, 17 Nov 2023 00:41:58 GMT \\
\bottomrule
\end{tabular}
\end{table}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-20-51-39.png}
\caption{HTTP请求的会话分析即报文交互图}
\end{figure}
TCP协议是传输层协议HTTP是应用层协议HTTP 1和2是基于TCP的但HTTP 3 是基于UDP的。
\thinkingquestion{
\item 一个主页是否只有一个连接?
如果使用持久连接的话,一个主页只有一个连接;否则就不一定。
}
\item 页面提交
本练习的提交过程使用了HTTP协议的POST方法这种方法的作用是从客户向服务器发送一些信息。
此次通信分访问post.html页面提交用户名和密码两个阶段。
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-08-23.png}
\caption{先GET post.html}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-09-08.png}
\caption{同时会附带GET favicon.ico获取图标}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-09-37.png}
\caption{点击确定后向res.html POST用户名和密码}
\end{figure}
可以注意到每次请求都重新建立TCP连接了因此此服务器实现的HTTP/1.1不正确因为HTTP/1.1应默认为持久连接。
\item 获取页面信息
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-14-23.png}
\caption{发送请求}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-14-58.png}
\caption{会话分析}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-15-16.png}
\caption{服务器返回了400 Bad Request}
\end{figure}
\thinkingquestion{
\item 同时打开多个浏览器窗口并访问一个WEB站点的不同页面时系统是根据什么把返回的页面正确地显示到相应窗口的
多个浏览器窗口访问同一个WEB站点的不同页面时每个窗口都会建立一个TCP连接这些连接有不同的源端口号系统根据源端口号把返回的页面正确地显示到相应窗口。
}
\item 较复杂的页面访问
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-19-06.png}
\caption{先查询DNS}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-19-53.png}
\caption{再请求第一个页面,可以看到响应过大被分段了}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-21-41.png}
\caption{还请求了图片,响应过大仍然被分段}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-22-20.png}
\caption{也能观察到TCP的累积确认机制}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-23-03.png}
\caption{当然有的资源可能404 Not Found}
\end{figure}
\thinkingquestion{
\item 为什么HTTP不保持与客户端的TCP连接
(标准回答)先问是不是,再问为什么。
使用持久连接时HTTP会保持与客户端的TCP连接使用非持久连接时HTTP不保持与客户端的TCP连接。HTTP/1.1以下默认非持久连接HTTP/1.1开始默认持久连接。而本次实验环境实现的HTTP不规范因此导致HTTP不保持与客户端的TCP连接。
}
}
\end{enumerate}
\end{document}