构造HTTP

DAO设计模式
DBUtil
Servlet是什么

Servlet是一种实现动态页面的技术,是一组Tomcat提供给程序员的API,帮助程序员简单高效的开发一个web app。

动态页面和静态页面

静态页面就是内容始终固定的页面,即使用户不同时间不同输入的参数不同,页面内容也不会发生改变;动态页面指用户不同时间不同输入参数不同,页面内容会随之变化的页面。
构建动态页面的技术有很多,每种语言都有一些相关的库和框架来做这件事情。
servlet就是tomcat这个HTTP服务器提供给Java的一组API,来完成构建动态页面这个任务。

servlet主要做的工作

1、允许程序员注册一个类,在tomcat收到某个特定的HTTP请求的时候,执行这个类中的代码
2、帮助程序员解析HTTP请求,把HTTP请求从一个字符串解析成一个HttpRequest对象
3、帮助程序员构造HTTP响应,程序员只要给指定的HttpResponse对象填写一些属性字段,Servlet就会自动的安装HTTP协议的方式构造出一个HTTP响应字符串,并通过Socket写回给客户端。

通过form表单构造HTTP请求

form表单是HTML中的一个常用标签,可以用于给服务器发送GET或POST请求

form发送GET请求

form的重要参数:
action:构造的HTTP请求的URL是什么
method:构造的HTTP请求的方法是GET还是POST
input 的重要参数:
type: 表示输入框的类型. text 表示文本, password 表示密码, submit 表示提交按钮.
name: 表示构造出的 HTTP 请求的 query string 的 key. query string 的 value 就是输入框的用户``输入的内容.
value: input 标签的值. 对于 type 为 submit 类型来说, value 就对应了按钮上显示的文本.

<form action="http://abcdef.com/myPath" method="GET"> <input type="text" name="userId"> <input type="text" name="classId"> <input type="submit" value="提交"> </form>

页面展示的效果:
在这里插入图片描述

在输入框随便填写数据,
在这里插入图片描述

点击 “提交”, 此时就会构造出 HTTP 请求并发送出去

form代码和http请求之间的对应关系

在这里插入图片描述
form 的 action 属性对应 HTTP 请求的 URL
form 的 method 属性对应 HTTP 请求的方法
input 的 name 属性对应 query string 的 key
input 的 内容 对应 query string 的 value

通过ajax构造HTTP请求

1、从前端角度, 除了浏览器地址栏能构造 GET 请求, form 表单能构造 GET 和 POST 之外, 还可以通过 ajax的方式来构造 HTTP 请求. 并且功能更强大.
2、ajax 全称 Asynchronous Javascript And XML, 是 2005 年提出的一种 JavaScript 给服务器发送HTTP 请求的方式.
3、特点是可以不需要 刷新页面/页面跳转 就能进行数据传输. 在 JavaScript 中可以通过 ajax 的方式构造 HTTP 请求.

发送 GET 请求

创建 test.html, 在

在这里插入图片描述

浏览器和服务器交互过程(引入 ajax 后):

在这里插入图片描述

发送 POST 请求

对于 POST 请求, 需要设置 body 的内容

  1. 先使用 setRequestHeader 设置 Content-Type
  2. 再通过 send 的参数设置 body 内容
  3. 在这里插入图片描述
通过 Java socket 构造 HTTP 请求

所谓的 “发送 HTTP 请求”, 本质上就是按照 HTTP 的格式往 TCP Socket 中写入一个字符串.
所谓的 “接受 HTTP 响应”, 本质上就是从 TCP Socket 中读取一个字符串, 再按照 HTTP 的格式来解析.
我们基于 Socket 的知识, 完全可以构造出一个简单的 HTTP 客户端程序, 用来发送各种类型的 HTTP 请 求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scapy是一个强大的Python库,用于网络数据包的创建、发送和解析。它可以用于构造各种类型的网络协议,包括HTTP协议。 要构造HTTP请求,首先需要创建一个IP数据包,指定源IP和目标IP地址。然后在IP数据包中创建一个TCP数据包,指定源端口和目标端口。接下来,在TCP数据包中创建一个Raw数据包,用于存储HTTP请求的内容。 下面是一个使用Scapy构造简单HTTP请求的示例代码: ```python from scapy.all import * # 构造IP数据包 ip = IP(src="192.168.0.1", dst="192.168.0.2") # 构造TCP数据包 tcp = TCP(sport=12345, dport=80, flags="S", seq=1000) # 构造HTTP请求内容 http_request = "GET /index.html HTTP/1.1\r\nHost: example.com\r\n\r\n" # 构造Raw数据包 raw = Raw(load=http_request) # 构造完整的数据包 packet = ip / tcp / raw # 发送数据包 send(packet) ``` 在上面的示例中,我们使用Scapy构造了一个简单的HTTP GET请求。首先创建了一个IP数据包,指定源IP和目标IP地址。然后创建了一个TCP数据包,指定源端口和目标端口,并设置了SYN标志位。接下来创建了一个Raw数据包,其中存储了HTTP请求的内容。最后将这些数据包按照顺序组合起来,形成一个完整的数据包,并使用`send()`函数发送出去。 需要注意的是,上述示例只是一个简单的HTTP请求构造示例,实际的HTTP请求可能更加复杂,需要根据具体的需求进行构造
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值