html表单提交的请求原理,<form></form>表单的提交原理

之前一直在用form表单提交,但一直没有了解它的原理,今天就看了看,希望能帮到大家理解首先先来看一下平时的form表单结构。action后面跟的是路径url,methord是用哪种方式来传递,一般都是get和post两种方式,form表单里面有一些input标签。http是来如何提交表单的呢?我们来看一下

1、表单提交时表单内容会被浏览器封装为HTTP请求报,里面包含了所有表单元素的name属性值和value属性的值,形式为name=value。

2、该HTTP请求报被webserver获取后会被解析并封装成一个Request对象,Request对象里有一个Parameters集合专门用来存放所有的表单元素键值对,这里的parameters即Firefox的HttpRequester插件Parameters。

3、每个表单元素名值对被封装成一个Parameter,而Parameter其实就是一个Map,所以你的Server里就可以用request.getParameter(name)获取其value了

如果用get方式提交表单,会在地址栏显示 param=value 这种形式,比如说提交路径是http://localhost/MyDemo/testAction.do?id=test&status=insert   get是默认的提交方式

然后通过Firefox的HttpRequester插件(参数可以写入Content to Send、Headers、Parameters传递给后端),发起一个http url请求。

那http  url请求又是怎么回事呢?

通常情况下,HTTP协议的工作原理很好理解,用户通过客户端向服务端发起一个请求,创建一个TCP连接,指定端口号,默认是80,然后连接到服务器工作。在那个端口监听浏览器请求。一旦监听到客户端请求,分析请求类型后,服务器会向客户端返回一个响应状态,比如"HTTP/1.0 ,  404 ,OK",同时会返回特定的数据内容,如请求的资源,错误代码,其它状态信息等等。

当浏览器向服务器发送一个请求到Web服务器,它发送一个数据块,或请求信息,HTTP请求信息包括3部分:1、请求方法URI协议/版本;2、请求头(Request Header);3、请求正文;

下面是一个HTTP请求的示例:

GET/test.html  HTTP/1.1      (这是请求方法URI协议/版本)

Accept:image/test.image/jpeg,*/*

Accept-Language:zh-cn

Connection:Keep-Alive      Host:222.35.232.103  User-Agent:Mozila/5.0(compatible;MSIE5.01;Window NT5.0)

Accept-Encoding:gzip,deflate  (到这里是请求头(Request Header))

username=linuxidc&password=linuxidc(请求正文)

请求正文和请求头要有空行。这个空行必须存在,说明结束请求头传输,开始传输正文请求。请求正文中一般包含很多信息,例如用户提交的用户名和密码之类的登陆信息:userlogin=linuxidc¤tpwd=linuxidc

补充:根据HTTP标准,HTTP请求可以使用多种不同的请求方法。例如:HTTP1.1允许支持七种请求方法(也叫“动作”):GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。日常开发中,GET和POST是最常用的方法,主要在相关的Web开发中。

那form表单通过get把数据提交到web上,服务器通过解析数据进行存储,然后怎么响应呢?

和请求报文类似,HTTP响应主要也是3个部分构成:(1)协议状态版本代码描述;(2)响应头(Response Header);(3)响应正文

HTTP/1.1 200 OK

Server:Apache Tomcat/7.0.1

Date:Mon,2Match2017 13:23:42 GMT

Content-Length:102

下面是响应正文

baec052d1e54

响应正文

baec052d1e54

表单的结构

baec052d1e54

提交的过程

baec052d1e54

baec052d1e54

最后是.submit()方法,走的是请求http,get,或者post,  一般get是从服务器上获取数据,post是向服务器传送数据。get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP。post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

推荐个网址  http://www.cnblogs.com/Jxwz/p/4509618.html  大家可以看看

谢谢观赏!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值