• 【笔记——ASP.NET基础知识(一)】


    写在前面:
    通过几天 的面试发现一个规律,对于还没有毕业的大学生来说,拥有多少项目经验 不是企业最看重的,企业更看中的是对基础知识的掌握程度,万丈高楼平地起,现在我就总结一下这方面的基础知识,也当做学习笔记吧!

    1. WebSite和WebApplication的区别
      1)当改变后台代码时,WebApplication需重启浏览器或者重新生成解决方案,而WebSite则不用;
      2)WebSite没有Solution,没有namespace,不利于工程化开发。
    2. HTTP的工作方式是什么?
      1)客户端提交表单请求处理 Request
      2)服务器端处理程序进行处理 Handle
      3)服务端相应        Response
      注意:
      提交到服务器的表单元素一定要添加name属性,因为服务器只认name,这一点和Jquery、DOM不一样,它们只会识别id.
    3. Form的method属性指定表单的提交方式的问题 *
      1)get(默认值)是通过地址栏的URL显式地传递表单;
      post传递的表单值是隐藏在Http报文中,URL地址栏中是看不到的;
      2)get传递值的数量是有限的,会受到地址栏长度的影响,好像最大是2K个字节,而post则没有限制。
      3)post当刷新页面时,会有浏览器提示重新提交表单的对话框,而get则没有。
    4. DIV中的内容不会提交给服务器?
      只有给div设置了name属性的value值(如input、textarea、select等)才会被提交到服务器
    5. ViewState原理
      1)隐藏一些字段,用来存放那些没有value属性值的控件
      2)因为http是无状态的协议,所以当页面发生改变的时候,会用viewstate保持页面上一次的状态。
      3)例如:label控件被浏览器渲染成<span>标记,所以label的值就存在了viewstate中;
      同理,textbox控件也被浏览器渲染成了input标记,TextBox中的值不用存,因为TextBox本质上就是input,input自己会提交给服务器,不需要隐藏字段。
      4)可以通过ViewStateDecoder工具查看viewstate中的容的本来面目。
    6. 状态信息保存在隐藏字段中(viewstate)的优缺点
      1)加大网站流量
      2)降低访问速度
      3)机密数据放到表单中会有数据欺骗等安全性问题(如网银等)。*
    7. 所有的后台程序实现的都是IhttpHandler接口
    8. Cookie和session都是用来存放当前客户端的相关数据,
      cookie存放在客户端,session存放在服务器端。
      注意:session中不能保存太大的数据,它存的是object类型的数据,所以使用时需要进行类型装换。
    9. http请求报文时,页面中的每类元素,如img、js、css等文件都是单独请求的。这一点可以通过开发者工具或者大名鼎鼎的Firebug查看。
      *http是"无状态"的协议,所以它不会记得上一次做过什么,不会记得上次给浏览器发过**信息,所以当它下次重新请求时,img、js、css等文件会重新发来header信息。
    10. get是通过url地址栏传送的参数显式地传递的,如: ?a=123&b=abc
    11. post是不通过url传值的,但是它在后台悄悄地传送数据 ,用__VIEWSTATE隐式地传送。
    12. HTTP各种状态码 含义
      1)200系列,表示请求成功,OK
      2)300系列,如307,表示服务器重定向,需要对请求做进一步处理;
      3)400系列,如404,表示页面未找到,file not found.
      4)500系列,表示内部服务器错误。
    13. 后台写删除按钮提交事件是,要在Button控件中的OnClientClick属性中加上
      <input type="submit" name="delete" value="删除" OnClientClick="return confirm('确定要删除吗?')" />
      可以在客户端提示友好地操作者,以免进行不必要的删除。
    14. 127.0.0.0是回环地址,表示访问本机,不经过网卡,无法在外地访问,别名为localhost。
      0.0.0.0 表示任意IP,AnyIP.
    15. 将Html、js转换为普通一对一字符
      HttpUtility.HtmlEncoder(string s) // 转换为特殊字符,例如:小于号<转为&lt; 大于号> 转化为&gt; 空格符转换为&nbsp;
    16. /表示网站的根目录;
      ..表示上级目录;
      .表示当前目录;
      ~特殊路径,只用于服务器控件中,表示从应用的根目录开始定义。
    17. 将虚拟路径转化为全路径,绝对路径
      VirtualPathUtility,ToAblolute("~/a/b.html");    // 转换为 /WebSite/a/b.html
    18. 服务端控件必须用post方法提交form。
    19. 可以利用ClientID获取客户端控件的ID,
      getElementById('<% =TextBox1.ClientID %>');    
      并不是每个服务端控件的ID和客户端的控件ID都一样,例如:在用户自定义控件(WebUserContrl.ascx)中服务端控件的ID会和客户端的ID不一样。
    20. 服务端控件label会在客户端渲染成<span>, 如果设置AssociateControlID属性为TextBox1,在客户端则会渲染成 <label for="TextBox1" . . ./ >,实现关联控件获得焦点。
    21. Literal控件在客户端什么都不渲染,以纯文本的形式展现。
      当设置其Mode属性为EnCode时,该控件会自动实现HttpUtility.HtmlEncoder(string s)转换,有时候很方便,同时可以避免XXS攻击。
    22. TextBox控件
      1)设置TextMode属性为SingleLine,会渲染成 <input type="text" />
      2)设置TextMode属性为MultiLine,会渲染成 <textarea />
      3)设置TextMode属性为Pasword,会渲染成 <input type="password" />
      4)当设置AutoPostBack 属性为true时,用户焦点离开TextBox就会造成页面的post;提交表单时最好用__doPostBack的js方法。

      写在后面:知识虽然基础,但却实用,不要羡慕别人写好的酷炫至极的js效果就去盲目跟风。三天打鱼两天晒网更是不可取,学习贵在坚持,没有人的智商高到不用学习就能会的,愚公移山、夸父追日的精神值得我们学习!

  • 相关阅读:
    python 网页cookie的使用
    python PIL 图像处理操作
    numpy linalg模块
    Robot Framework自动化测试Selenium2Library库详细用法
    Numpy 基本除法运算和模运算
    Java基础系列--基础排序算法
    java基础系列--SecurityManager入门(转)
    Java基础系列--ArrayList集合
    Java基础系列--instanceof关键字
    Java基础系列--throw、throws关键字
  • 原文地址:https://www.cnblogs.com/fanyong/p/2089213.html
Copyright © 2020-2023  润新知