-
1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。
100(继续)请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分;
101(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。
-
200(成功)服务器已成功处理了请求。通常,这表示服务器提供了请求的网页;
201(已创建)请求成功并且服务器创建了新的资源;
202(已接受)服务器已接受请求,但尚未处理;
203(非授权信息)服务器已成功处理了请求,但返回的信息可能来自另一来源;
204(无内容)服务器成功处理了请求,但没有返回任何内容;
205(重置内容)服务器成功处理了请求,但没有返回任何内容;
206(部分内容)服务器成功处理了部分 GET 请求。
-
300(多种选择)针对请求,服务器可执行多种操作。 服务器可根据请求者(用户代理)选择一项操作,或提供操作列表供请求者选择;
301(永久移动)请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 您应使用此代码告诉 Googlebot 某个网页或网站已永久移动到新位置;
302(暂时移动)服 务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 此代码与响应 GET 或 HEAD 请求的 301 代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉 Googlebot 某个网页或网站已经移动,因为 Googlebot 会继续抓取原有位置并编入索引;
303(查看其他位置)请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 对于除 HEAD 之外的所有请求,服务器会自动转到其他位置;304(未修改)自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。如果网页自请求者上次请求后再也没有更改 过,您应当将服务器配置为返回此响应(称为 If-Modified-Since HTTP 标头)。 由于服务器可以告诉 Googlebot 自从上次抓取后网页没有更改过,因此可节省带宽和开销;
305(使用代理)请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理;
307(暂时重定向)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 此代码与响应 GET 和 HEAD 请求的 301 代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉 Googlebot 某个页面或网站已经移动,因为 Googlebot 会继续抓取原有位置并编入索引。
-
4xx(请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。
400(错误请求)服务器不理解请求的语法;
401(未授权)请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应;
403(禁止)服务器拒绝请求。 如果您看到 Googlebot 在尝试抓取您网站上的有效网页时收到此状态代码(可以在 Google 网站管理员工具诊 断下的网络抓取页面上看到此信息),可能是您的服务器或主机拒绝 Googlebot 访问;
404(未找到)服务器找不到请求的网页。 例如,如果请求服务器上不存在的网页,服务器通常会返回此代码。如果您的网站上没有 robots.txt 文件,而您在 Google 网站管理员工具”诊断”标签的 robots.txt 页上看到此状态,那么这是正确的状态。 但是,如果您有 robots.txt 文件而又看到此状态,则说明您的 robots.txt 文件可能命名错误或位于错误的位置 (该文件应当位于顶级域名,名为 robots.txt)。如果您看到有关 Googlebot 尝试抓取的网址的此状态(在”诊断”标签的 HTTP 错误页上),则表示 Googlebot 追踪的可能是另一个页面的无效链接(是旧链接或输入有误的链接);
405(禁用的方法)禁用请求中指定的方法;
406(不可接受)无法使用请求的内容特性响应请求的网页;
407(需要代理授权)此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。 如果服务器返回此响应,还会指明请求者应当使用的代理;
408(请求超时)服务器等候请求时发生超时;
409(冲突)服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 服务器在响应与前一个请求相冲突的 PUT 请求时可能会返回此代码,同时会附上两个请求的差异列表;
410(已删除)如果请求的资源已永久删除,服务器就会返回此响应。 该代码与 404(未找到)代码相似,但在资源以前存在而现在不存在的情况下,有时会用来替代 404 代码。 如果资源已永久删除,您应当使用 301 指定资源的新位置;
411(需要有效长度)服务器不接受不含有效内容长度标头字段的请求;
412(未满足前提条件)服务器未满足请求者在请求中设置的其中一个前提条件;
413(请求实体过大)服务器无法处理请求,因为请求实体过大,超出服务器的处理能力;
414(请求的 URI 过长)请求的 URI(通常为网址)过长,服务器无法处理;
415(不支持的媒体类型)请求的格式不受请求页面的支持;
416(请求范围不符合要求)如果页面无法提供请求的范围,则服务器会返回此状态代码;
417(未满足期望要求)服务器未满足”期望”请求标头字段的要求。
-
500(服务器内部错误)服务器遇到错误,无法完成请求;
501(尚未实施)服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码;
502(错误网关)服务器充当网关或代理,从上游服务器收到无效响应;
503(服务不可用)服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态;
504(网关超时)服务器充当网关或代理,但没有及时从上游服务器收到请求;
505(HTTP 版本不受支持)服务器不支持请求中所用的 HTTP 协议版本。
注意事项
-
200号状态码:220.181.32.30 - - [02/Sep/2008:00:01:23 +0800] "GET /article/0572/72570.shtml HTTP/1.1" 200 28361 "-" "Baiduspider+(http://www.gzlij.com)" 服务器日志中的200表示使用GET传递方式网页72570.shtml下载成功。即:当用户或爬虫程序向网站服务器发出浏览请求时,服务器返回 HTTP 数据流里包含某种状态码,200响应号即状态码中的一种,表示本网页被成功下载。
-
301号状态码:220.181.32.30 - - [02/Sep/2008:00:01:31 +0800] "GET /my/view.php?aid=14183 HTTP/1.1" 301 - "-" "Baiduspider+(http://www.heyzc.com)" 服务器日志中的301表示使用GET传递方式动态网页aid=14183成功跳转。即:当用户或爬虫程序向网站服务器发出浏览请求时,服务器返回 HTTP 数据流包含某种状态码,301 重定向即状态码中的一种,表示本网页永久性转移到另一个地址。实际操作中我们可以将多个域名指向同一个网址,这也是搜索引擎唯一认可的一种网站转向的方式。
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。因此使用post比使用get安全。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。(Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务,是一种Web(网页)服务组件)
5.get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。
而cookie是运行在客户端的,所以可以用JS来设置cookie.
JS读取cookie:
假设cookie中存储的内容为:name=jack;password=123
则在B页面中获取变量username的值的JS代码如下:
var username=document.cookie.split(";")[0].split("=")[1]; //JS操作cookies方法! //写cookies function setCookie(name,value) { var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Days*24*60*60*1000); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); }
读取cookies:
function getCookie(name) { var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)) return unescape(arr[2]); else return null; }
删除cookies:
function delCookie(name) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval=getCookie(name); if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString(); } //使用示例 setCookie("name","hayden"); alert(getCookie("name")); //如果需要设定自定义过期时间 //那么把上面的setCookie 函数换成下面两个函数就ok; //程序代码 function setCookie(name,value,time) { var strsec = getsec(time); var exp = new Date(); exp.setTime(exp.getTime() + strsec*1); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); }
function getsec(str) { alert(str); var str1=str.substring(1,str.length)*1; var str2=str.substring(0,1); if (str2=="s") { return str1*1000; } else if (str2=="h") { return str1*60*60*1000; } else if (str2=="d") { return str1*24*60*60*1000; } } //这是有设定过期时间的使用示例: //s20是代表20秒 //h是指小时,如12小时则是:h12 //d是天数,30天则:d30 setCookie("name","hayden","s20");
http://www.w3school.com.cn/js/js_cookies.asp