zoukankan      html  css  js  c++  java
  • 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代码转成普通字符的形式

  • 相关阅读:
    BZOJ 3196 二逼平衡树
    BZOJ 4241 历史研究
    Problem 71:Ordered fractions
    矿工安全生产
    Codeforces 771C:Bear and Tree Jumps
    Problem 77:Prime summations
    Problem 69:Totient maximum
    关于Euclid算法
    团体程序设计天梯赛-练习集
    埃蒙的时空航道
  • 原文地址:https://www.cnblogs.com/sytu/p/4120195.html
Copyright © 2011-2022 走看看