ASP.NET基础学习未整理随笔

利用新建网站添加的项目可以改完代码直接刷新就行

提交到服务程序的表单一定要具有name。
<input type="hidden"value="true"name="ispostback"/>
先是要求服务器读取我的请求,然后再相应
提交是将内容发给服务器
请求响应
然后进行返回值的处理
string content=content.request["name"];
context.response.write(content);
如果直接用文件地址进行访问,就是直接进入
如果利用提交表单进行提交,就是提交进入
主要看url返回值
<form>的Method方法post 和get的区别
get和post的区别:get是通过Url传递表单值,post通过url看不到表单域的值
get传递的数据量是有限的。如果要大量传数据不能用get
比如type="file"和type="password"的传递还有<textarea>发表大篇文章,
post则没有这限制;post会有浏览器提示重新提交表单的问题,get则没有

get方法url数据格式,服务端文件名后跟着“?”。
由于客户端可能像服务器端提交多个键值对,每个键值对之间用&分割
如果url中有汉字或者特殊符号,则需要对url进行编码
表单域只有只有设定了name的才会被提交给服务器,
如果给submit按钮设定了name,那么按钮的value也会被提交给服务器

viewstate是用来保存无name和value属性的控件的键值
像div还有label等需要用viewstate

http协议是无状态的,不会记得上次和网页发生了什么
服务器不记得上次给了浏览器什么,
浏览器需要记住这些值(input就是记到value中,对于其他的值就要放到隐藏字段中
比如viewstate)下次在提交给服务器的时候需要提交上次的值

禁用了viewstate就读不到上次给客户端的值了
写入里面值不受影响
禁用viewstate在请求没有结束之前,也能读出来设置的值

将状态信息保存在隐藏字段中:加大了网站的流量,降低了访问速度。
密数据放到表单中会有数据欺骗等安全性问题(关键性的问题)。
机密数据放到服务器之中。

要把机密数据放到服务器并且区分不同的访问者的私密区域(id)

cookie是放到浏览器中的。

//cookie不能存放过多的信息

互联网优化的案例:图片服务器和主站域名不一样,降低cookie流量的传输
cookie内部信息同样不安全
cookie可以帮助把机密信息保存在服务器中
不要放太多的对象到Session、session会有超时销毁的机制
(服务器不可能知道浏览器什么时候关闭什么时候开着)
session不是http协议规定的,是ASP.NET实现的,现在php,
Jsp等大部分服务端技术都实现了session,原理差不多

cookie不能存储过多的信息,如果想保存大量的数据,可以保存
一个guid到cookie中,然后在服务器中建立一个以guid为key
复杂数据为value全局dictionary.static字段对于不同的用户也只有一份。
因此static能够实现数据的共享
http协议只有请求才会响应

session是保存在服务器端是object对象
cookie是放到客户端是string对象

http协议的几个概念
1.请求connection;浏览器和服务器之间传输数据的通道。
一般请求完毕就关闭不会保持连接。
2.request 浏览器向服务器发送的“我要----消息”,包含
请求的类型,请求的数据,浏览器拿的信息(语言,浏览版本等)
3.response 得到数据后在浏览器端响应结果(正确结果或者错误代号)

200:successfull成功处理
301:Moved permanently 永久转移
301:found 暂时转移
307:Temporary Redirect

400:BAD Request 错误请求
401: Unauthorized 未认证
403:Forbidden被禁止
404:not found找不到数据,错误
500:Internal Server Error服务器内部错误
503:Service Unavailable 一般是访问人数过多

Server:Cassini/3.5.0.5 表示服务器的类型
Content-Type:内容类型

http是无状态的,每次请求数据都必须将报文重新提交
页面中的图片,js,css都在单独请求中

一般情况下,只有浏览器请求服务器端,服务器端才有给浏览器
响应数据,不会主动向浏览器推送数据,这样是安全考虑,也是提高服务器
性能的考虑。如果要求服务器主动向浏览器传送数据应当使用serverpush等技术

submit是表单请求:是postBACK
超链接请求时不受post和get控制的:不是postback
超链没有向服务器提交viewstate等隐藏字段的内容

web开发原则
*最小权限原则:只允许用作---,而不是“不允许用户做--”
*浏览器查看的是服务端代码执行输出的文本,除非服务器有漏洞,
否则浏览者无法查看服务端的aspx,cs代码,目标另存为也是保存的aspx
的执行效果,看不到aspx的源代码

!----------
按钮确认按钮: return confirm("您真的要做--?");(在onclientclick事件中)
返回true就执行相应的功能
返回false就不执行相应的功能

XSS漏洞处理
ValidateRequest="false"可以彻底禁止发html代码
但是在某些需求中,这样不行。因为有的网站就是要求能够上传html代码
HttpUtility.HtmlEncode可以将html代码转成普通字符的形式

时间: 2024-08-29 15:42:39

ASP.NET基础学习未整理随笔的相关文章

【Linux】鸟哥的Linux私房菜基础学习篇整理(二)

1. dumpe2fs [-bh] devicename:查询superblock信息.参数:-b:列出保留为坏道的部分:-h:列出superblock的数据,不会列出其他的区段内容. 2. df [-ahikHTm] 目录或文件名:列出文件系统的整理磁盘使用量.参数:-a:列出所有的文件系统,包括系统特有的/proc等文件系统:-k:以KB的容量显示各文件系统:-m:以MB的容量显示各文件系统:-h:以人们易阅读的GB.MB.KB等格式自行显示:-H:以M=1000K替代M=1024K的进位方

【Linux】鸟哥的Linux私房菜基础学习篇整理(十)

1. at [-mldv] TIME/at -c 工作号码:单一工作调度.参数:-m:当at的工作完成后,即使没有输出信息,以email通知用户该工作已完成:-l:相当于atq,列出目前系统上面的所有该用户的at调度:-d:相当于atrm,可以取消一个在at调度中的工作:-v:可以使用较明显的时间格式列出at调度中的任务列表:-c:可以列出后面接的工作的实际命令内容.TIME时间格式:HH:MM:在今日的HH:MM时刻进行,若已经超过该时刻,则明天的HH:MM进行该工作:HH:MM YYYY-M

【Linux】鸟哥的Linux私房菜基础学习篇整理(一)

最近,一直在写PPC的模拟器和汇编器,也在做设计.所以重新看了看<鸟哥的Linux私房菜>,还是有好多命令不太熟悉.就打算写几篇blog记下来. 1. nl [-bnw] filename:添加行号打印参数:-b:指定行号指定的方式,主要有两种: -b a:表示不论是否为空行,也同样列出行号(类似cat -n): -b t:如果有空行,空的那一行不要列出行号(默认值).-n:列出行号表示的方法,主要有三种: -n ln:行号在屏幕的最左方显示: -n rn:行号在自己字段的最右方显示,且不加0

【Linux】鸟哥的Linux私房菜基础学习篇整理(七)

1. test命令的测试功能.测试的标志:(1)关于文件类型的检测 test [-efdbcSpL] filename-e:该文件名是否存在:-f:该文件名是否为文件:-d:该文件名是否为目录:-b:该文件名是否存在且为一个block device设备:-c:该文件名是否存在且为一个character device设备:-S:该文件名是否存在且为一个Socket文件:-p:该文件名是否存在且为一个FIFO文件:-L:该文件名是否存在且为一个连接文件.(2)关于文件权限的检测 test [-r]

【Linux】鸟哥的Linux私房菜基础学习篇整理(九)

1. quotacheck [-avugfM] [/mount_point]:扫描文件系统并创建Quota配置文件.参数:-a:扫描所有在/etc/mtab内,含有quota支持的文件系统,加上此参数后,不必写/mount_point:-u:针对用户扫描文件与目录的使用情况,会新建aquota.user:-g:针对用户组扫描文件与目录的使用情况,会新建aquota.group:-v:显示扫描过程的信息:-f:强制扫描文件系统,并写入新的quota配置文件(危险):-M:强制以读写的方式扫描文件系

Bombe 【Linux】鸟哥的Linux私房菜基础学习篇整理(三)

1. gzip [-cdtv#] filename:压缩.参数:-c:将压缩的数据输出到屏幕上,可通过数据重定向进行处理:-d:解压缩的参数:-t:可以用来检验一个压缩文件的一致性,查看文件有无错误:-v:可以显示出原文件/压缩文件的压缩比等信息:-#:压缩等级,1最快(压缩比最差),9最慢(压缩比最好),默认6. 2. zcat *.gz:读取gzip压缩文件. 3. bzip2 [-cdkzv#] filename:压缩.参数:-c:将压缩过程中产生的数据输出到屏幕上:-d:解压缩的参数:-

【Linux】鸟哥的Linux私房菜基础学习篇整理(十二)

1. depmod [-Ane]:更新内核模块依赖.参数:无参数:depmod会主动分析目前内核的模块,并重新写入/lib/modules/$(uname -r)/modules.dep中:-A:depmod会查找比modules.dep内还要新的模块,如果找到符合模块才更新:-n:不写modules.dep,而将结果输出到屏幕:-e:显示目前已加载的不可执行的模块名称. 2. lsmod:查看内核目前加载的模块. 3. modinfo [-adln] [module_name|filename

【Linux】鸟哥的Linux私房菜基础学习篇整理(四)

1. VI按键说明.(1)移动光标的方法h或向左箭头:光标向左移动一个字符:j或向下箭头:光标向下移动一个字符:k或向上箭头:光标向上移动一个字符:l或向右箭头:光标向右移动一个字符:进行多次移动,如向左移动30行,可以使用“30k”或者“30<-”[ctrl]+[f]:屏幕向下移动一页:[ctrl]+[b]:屏幕向上移动一页:[ctrl]+[d]:屏幕向下移动半页:[ctrl]+[u]:屏幕向上移动半页:+:光标移动到非空格的下一行:-:光标移动到非空格的上一行:n[space]:n表示数字,

【Linux】鸟哥的Linux私房菜基础学习篇整理(五)

1. type [-tpa] name:查看name命令是否为bash内置命令.参数:type:不加任何参数,type会显示出那么是外部命令还是bash的内置命令:-t:当加入-t参数时,type会通过如下关键字显示其意义: file:表示为外部命令 alias:表示为命名别名 builtin:表示为bash的内置命令-p:如果后面接的name为外置命令时,才会显示完整文件名:-a:会由PATH变量定义的路径中,将含有name的命令都列出来,包含别名. 2. unset name:取消变量名na