Web程序中报文,处理程序

一、创建Web应用程序

1.选择ASP.NET应用程序
在这里插入图片描述

2.配置项目名称及保存路径

在这里插入图片描述

3.创建空白Web程序

在这里插入图片描述

4.添加HTML文件

在这里插入图片描述

4.创建Form表单

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
       <form action="Handler1.ashx" method="post">
        <input type="text" name="num1" value="" />+
        <input type="text" name="num2" value="" />=
        <input type="submit" name="btn" value="计算" />
    </form>
</body>
</html>

(1)表单的作用:收集用户输入的数据,并提交给后台服务器
(2)表单的组成:表单域、表单元素、提示信息
(3)表单的属性:
action:数据提交的目的地(后台数据接收与处理模块:C#文件)
method:数据提交的形式(post:隐式发送;get显示发送)
name:name属性决定哪个表单元素中的value的值能够被提交到后台

二、静态页面运行

  1. 文件目录作为地址运行:file:///file:///E:/peixun/ASP.NET%E7%BB%83%E4%B9%A0/WebForm/WebFormDemo01/WebFormDemo01/index.html
  2. 以虚拟服务地址运行:https://https://localhost:44387/index.html

这两种运行方式完全不一样:
(1)打开html根目录运行html文件运行:
是不需要网络传输,必须要保证客户端计算机能够访问到目标地址文件。运行原理是:浏览器直接执行这个html文件
(2)虚拟服务地址运行:
相当于将html文件存放在了一个服务器上,访问的时候只要网络能够打通则即可通过网络路径进行访问这个html文件。运行原理:浏览器先从服务器路径上将该html文件下载到本地浏览器内存中,然后执行下载的html文件

三、报文

当Form表单向服务器发起请求时,会将表单中设置有name属性的表单元素的value值放进报文中通过Internet网络传输,BS的数据传输基本上全部凭借报文进行传输数据,HTTP协议传输协议就是传输报文。报文的格式是世界万维网组织提供的报文格式
在这里插入图片描述

  1. 如果表单提交方式是以get提交:
    具有name属性的表单元素的value值会被封装在消息头的请求网址中随着网络进行传输,意味着可以在浏览器的URL框中的网址后面以“name1值=value1值&name2值=value2值…”形式传输
    在这里插入图片描述

  2. 如果表单提交方式是以post提交:
    具有name属性的表单元素的value值会被封装在报文的参数中随着网络进行传输,意味着在浏览器的URL框中看不到传输的数据格式
    在这里插入图片描述
    总结:
    (1)如果表单元素的value值要被传输到服务器,则必须要设置name属性
    (2)get提交则提交的数据信息会在URL框中出现,因此传输数据量有限,不安全,但是传输速度快
    (3)post提交则提交的数据信息不回出现在URL框中,因此传输数据量没有限制,相对比较安全,但是传输速度相比较较慢

get提交与post提交区别

1、get在浏览器回退时是无害的,而post会再次请求。
2、get产生的URL地址可以被收藏,而post不会。
3、get请求会被浏览器主动缓存,而post不会,除非手动设置。
4、get请求只能进行URL编程,而post支持多种编码方式。
5、get请求参数会被完整保留在浏览器历史里,而post中的参数不会被保留。
6、get请求在URL中传送的参数有长度限制,而post没有。
7、对参数的数据类型,get只接受ascll字符,而post没有限制。
8、get不如post安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
9、get参数通过URL传递,post放在request body中。

四、一般处理程序

在这里插入图片描述

什么是一般处理程序

一般处理程序是一个后缀为.ashx的代码文件,该文件的类实现了IHttpHandler接口,这个类用于负责处理它所对应的URL的访问请求,并接受客户端发送的请求信息和发送响应内容。

提示:实现IHttpHandler接口的类是作为一个外部请求程序的前提,凡是没有实现该接口的类都不能被浏览器访问。

什么时候用

虽然通过标准的方式可以创建处理程序,但是实现的步骤比较复杂,为了方便网站开发中对处理程序的应用,从Asp.net 2.0开始,asp.net提供了称为一般处理程序的处理程序,允许我们使用比较简单的方式定义扩展名为ashx的专用处理程序。

对于asp.net网站来说,网站最佳的处理结果就是HTML网页,生成网页的工作通常使用扩展名为aspx的Web窗体来完成。对于处理结果不是HTML的请求,都可以通过一般处理程序完成。例如生成RSS Feed、XML、图片等。

一般处理程序是asp.net网站中最为简单、高效的处理程序,在处理返回类型不是HTML的请求中有着重要的作用。

简单理解:一般处理程序就类似于CS程序中的Program文件可以直接运行执行,可以处理一些简单的客户端的需求

        public class Handler1 : IHttpHandler
        {
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                context.Response.Write("Hello World");
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
       }

方法

  1. ProcessRequest方法:处理请求的方法,是一般处理程序的核心方法
    HttpContext参数:这个对象中包含有网络传输的所有的内容,例如客户端发起请求的所有的表单数据等
    HttpContext对象的属性:
    1. Request属性:是一个对象,这个对象包含有报文所有的请求头的数据信息
    2. Response属性:是一个对象,这个对象包含有报文所有的响应头的数据信息
发布了147 篇原创文章 · 获赞 254 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/dust__/article/details/105570044