网站处理过程:请求——处理——响应
新建——项目——WEB——ASP.NET空Web应用程序(推荐)
添加一般处理程序,ashx格式
其中ProcessRequest是对请求进行相应的函数
content.Response.ContentType=“text/html”;确定响应内容类型
string action=context.Request["name"];//请求客户端输入name值并赋值给服务器端,通过Request拿到的参数值都是字符串类型
content.Response.Write("<font color=‘red‘>hello world"=action+"</font>");响应
表单提交
用<form>标签包含起来,action属性是提交给哪个页面,method有get和post两种,需要在html中给提交内容指定name属性
浏览器向服务器端提交数据,被提交数据的表单(input、select、textare等)放到form中,form中通过action属性设定表单被提交到那个页面,为了在服务器端取出表单项,需要在HTML中为表单元素设定name属性,只有(input、select、textare等)的value值才会提交给服务器,对于RadioButton,同name的为一组,选中的RadioButton的value被提交给服务器
id是给JS操作Dom用的,name才是提交给服务器用的,整个html页面中id只有一个,不可以重复,name是可以重复的
服务器端用context.Request["username"]来根据表单项的name来获得提交的属性值
checkbox没选中为null,选中为“on”,勾上就传on,不勾就不传
method用get很不安全 。用post中内容放在了Form data ,传递的表单值是隐藏在http报文中的,url看不到,传递大数据没有限制,无法通过url在其他用户中还原;在get中,内容放在了Query string parameters中,会在地址栏中看到的,是通过url传递表单值,只能传递少量数据,get方式URL数据格式。服务端文件名后跟着“?”,由于客户端可能向服务端提交多个键值对,键值对之间用“&”进行分割,如果URL中有汉子、特殊符号,需要对URL进行编码。在IE浏览器中,get是从请求标头看到的,post是从请求正文里看到。
http协议:是浏览器和服务器端交互的协议,协议有版本的,响应标头代表服务器响应内容,200代表ok,请求——处理——响应 500内部服务器错误 302:Found暂时转移,用于重定向,Response.Redirect()会让浏览器再请求一次重定向的地址,重定向的请求是Get方式,“404”表示Not Found未找到
Content—Type:text/html;charset=utf-8表示返回数据类型,就是告诉客户端响应的数据类型,这样浏览器就可以根据返回数据类型来进行不同的处理,如果是图片类型就显示,如果是文本类型就直接显示内容,如果用html类型就用浏览器显示内容。这就是ashx中设置contenttype的原因,如果是plain的话,直接把普通文本返回,如果是html返回的是html页面
http是不保持连接的
http协议报文
请求:
GET/HTTP/1.1表示向服务器用get方式请求首页,使用http/1.1协议
User-Agent为浏览器版本信息,通过这个信息可以读取浏览器是ie还是其他
referer参数是来源页面。
Redirect重定向 发出请求,回复302 然后在location处放置重定向地址
context.Response.Redirect("重定向的网址");