HTTP协议02
9.HTTP练习
练习一
请写一篇关于HTTP协议的笔记,要求:
-
描述清楚HTTP请求头,响应头的格式
请求头:
响应头:
-
请求头和响应头中各个头字段的含义(请求头和响应头常用的头字段,各举例五个)
答:如上。
-
如果浏览器传递给web服务器的参数内容超过2k,应该使用哪种方式发送请求消息?为什么?
答:使用post,原因是get请求的数据放在地址栏,数据大小是有限定的。
如果超过2k,使用post请求。post方式传递的数据是封装到http请求体中,可以携带更多数据
练习二
请描述200,302,304,404和500等响应状态码所表示的意义
答:
200:表示成功返回资源
302:重定向
表示浏览器请求的资源不在此位置,服务器发送302状态码,同时发送新的资源地址,让浏览器重定向到某个资源
304:请求的资源没有修改过,因此不返回资源,仍然使用缓存数据。
表示浏览器请求的某资源的最近修改时间和服务器中的某资源是相同的,服务器返回状态码304,不再返回资源,浏览器使用缓存
404:服务器找不到浏览器请求的资源
500:服务器程序错误
练习三
请编写程序,能够演示200,302,304,404,500的错误,并使用Chrome浏览器抓包,截图到作业中
创建T2Servlet:
package li.servlet.homework;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(urlPatterns = {"/t2"})
public class T2Servlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer = resp.getWriter();
writer.print("<h1>成功访问T2Servlet</h1>");
writer.flush();
writer.close();
}
}
启动Tomcat,输入访问地址
200:
![image-20221110191632887](https://liyuelian.oss-cn-shenzhen.aliyuncs.com/imgs/image-20221110191632887.png)
404:
![image-20221110191732243](https://liyuelian.oss-cn-shenzhen.aliyuncs.com/imgs/image-20221110191732243.png)
302:
![image-20221110192148180](https://liyuelian.oss-cn-shenzhen.aliyuncs.com/imgs/image-20221110192148180.png)
redeployTomcat,浏览器输入地址:
![](https://liyuelian.oss-cn-shenzhen.aliyuncs.com/imgs/%E5%8A%A8%E7%94%BB1.gif)
304:
浏览器重复请求html:
![image-20221110193035810](https://liyuelian.oss-cn-shenzhen.aliyuncs.com/imgs/image-20221110193035810.png)
500:
![image-20221110193403321](https://liyuelian.oss-cn-shenzhen.aliyuncs.com/imgs/image-20221110193403321.png)
![image-20221110193442478](https://liyuelian.oss-cn-shenzhen.aliyuncs.com/imgs/image-20221110193442478.png)