浅析HTTP协议

文章目录

1.HTTP协议介绍

内容讲解

【1】概念

全称:超文本传输协议(HTTP,HyperText Transfer Protocol) 是互联网上应用最为广泛的一种网络协议(属于应用层协议)。

简而言之:浏览器和服务器数据交换固定的格式。

【2】版本

HTTP协议版本如下:

​ 1). http1.0 (1996) : 每次请求都有一个新的连接(开销大,比较慢)

​ 2). http1.1 (1999) : 长连接,多个请求共用一个连接(开销小一些,比较快)

​ 传输的数据都是文本(比较慢)

【3】分类

分为两类:

​ 1)请求报文协议(浏览器发送给服务器的数据 ):1)请求行 2)请求头 3)请求体

​ 2)响应报文协议(服务器发送给浏览器的数据):1)响应行 2)响应头 3)响应体

【4】特点

​ 1.先有请求

​ 2.再有响应

​ 3.一个请求对应一个响应

内容小结

1.HTTP协议称为超文本传输协议,是浏览器和服务器数据交换固定的格式。

2.HTTP协议分为两类:

​ 1)请求报文协议:浏览器给服务器传输数据遵守的规范

​ 2)响应报文协议:服务器给浏览器传输数据遵守的规范

3.Http协议特点:

1.先有请求

2.再有响应

3.一个请求对应一个响应

2.浏览器抓包观察请求报文协议

内容讲解

【1】步骤

markdown 复制代码
1.创建html页面
2.在html页面书写html代码
3.创建servlet
4.在servlet中书写java代码
5.启动服务器
6.打开浏览器,在浏览器访问页面,然后按f12 点击网络 network
7.抓包结果分析

【2】实现

1.创建html页面

2.在html页面书写html代码

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h2>GET请求</h2>
<form action="/getServlet" method="get">
    用户名:<input type="text" name="username" value="zhangsan" /><br>
    密码:<input type="text" name="pwd" value="123" /><br>
    <input type="submit" value="提交"/>
</form>


<h2>POST请求</h2>
<form action="/postServlet" method="post">
    用户名:<input type="text" name="username" value="zhangsan"/><br>
    密码:<input type="text" name="pwd" value="123"/><br>
    <input type="submit" value="提交"/>
</form>

</body>
</html>

3.创建servlet

4.在servlet中书写java代码

java 复制代码
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/getServlet")
public class GetServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("get....");
    }
}
java 复制代码
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/postServlet")
public class PostServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("post....");
    }
}

5.启动服务器

6.打开浏览器,在浏览器访问页面,然后按 f12 点击网络

7.抓包结果分析

内容小结

1.打开浏览器抓包工具快捷键:f12

2.请求报文协议的get请求和post请求区别:

html 复制代码
1. GET请求:
	1)请求行直接传递请求参数.将请求参数追加在URL后面,不安全。例如:form.html?username=jack&username=1234
    补充:但是get请求可以作为商品的分享。
	2)URL长度限制(不同浏览器限制大小不一致),GET请求方式的数据大小,不可以传输数据量较大或者非文本数据。例如图片或者视频。
	3)请求体里面没有内容。

2.  POST请求:
	1)请求参数以请求体形式发送给服务器,数据传输安全。
	2)请求数据可以为非文本数据,可以传输数据量较大的数据。
	3)只有表单设置为method="post"才是post请求.或者axios.post()也属于post请求
    其他的都是get请求。常见GET请求:地址栏直接访问、<a href="">、<img src=""> location.href="" 、axios.get()等
相关推荐
游戏开发爱好者82 小时前
iOS重构期调试实战:架构升级中的性能与数据保障策略
websocket·网络协议·tcp/ip·http·网络安全·https·udp
(:满天星:)6 小时前
第31篇:块设备与字符设备管理深度解析(基于OpenEuler 24.03)
linux·运维·服务器·网络·centos
野蛮人6号7 小时前
虚拟机网络编译器还原默认设置后VMnet8和VMnet1消失了
网络·vmware·虚拟机网络编译器·vmnet8消失
scuter_yu8 小时前
主流零信任安全产品深度介绍
运维·网络·安全
江苏思维驱动智能研究院有限公司8 小时前
Sophos 网络安全:全球领先的自适应安全解决方案提供商
网络·安全·web安全
面朝大海,春不暖,花不开8 小时前
Java网络编程:TCP/UDP套接字通信详解
java·网络·tcp/ip
ChicagoTypewriter8 小时前
计算机网络中的常用表项梳理
网络·计算机网络·智能路由器
DemonAvenger9 小时前
高性能 TCP 服务器的 Go 语言实现技巧:从原理到实践
网络协议·架构·go
Bruce_Liuxiaowei11 小时前
常见高危端口风险分析与防护指南
网络·网络安全·端口·信息搜集
tmacfrank12 小时前
Android 网络全栈攻略(四)—— TCPIP 协议族与 HTTPS 协议
android·网络·https