wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.

  所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。
  wget 可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作"递归下载"。在递归下载的时候,wget 遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。
  wget 非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

wget的常见用法
wget虽然功能强大,但是使用起来还是比较简单的,
基本的语法是:wget [参数列表] "URL" 用""引起来可以避免因URL中有特殊字符造成的下载出错。
下面就结合具体的例子来说明一下wget的用法。
引用
   1、下载整个http或者ftp站点。
   wget http://place.your.url/here
   这个命令可以将http://place.your.url/here 首页下载下来。使用-x会强制建立服务器上一模一样的目录,如果使用-nd参数,那么服务器上下载的所有内容都会加到本地当前目录。
   wget -r http://place.your.url/here
   这个命令会按照递归的方法,下载服务器上所有的目录和文件,实质就是下载整个网站。这个命令一定要小心使用,因为在下载的时候,被下载网站指向的所有地址同样会被下载,因此,如果这个网站引用了其他网站,那么被引用的网站也会被下载下来!基于这个原因,这个参数不常用。可以用-l number参数来指定下载的层次。例如只下载两层,那么使用-l 2。

   要是您想制作镜像站点,那么可以使用-m参数,例如:wget -m http://place.your.url/here
   这时wget会自动判断合适的参数来制作镜像站点。此时,wget会登录到服务器上,读入robots.txt并按robots.txt的规定来执行。


引用
   2、断点续传。
   当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数,例如:
   wget -c http://the.url.of/incomplete/file
   使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。-T参数表示超时等待时间,例如-T 120,表示等待120秒连接不上就算超时。


引用
   3、批量下载。
   如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成文件download.txt,然后用命令:wget -i download.txt
这样就会把download.txt里面列出的每个URL都下载下来。(如果列的是文件就下载文件,如果列的是网站,那么下载首页)


引用
   4、选择性的下载。
   可以指定让wget只下载一类文件,或者不下载什么文件。例如:
   wget -m --reject=gif http://target.web.site/subdirectory
   表示下载http://target.web.site/subdirectory,但是忽略gif文件。--accept=LIST 可以接受的文件类型,--reject=LIST拒绝接受的文件类型。


引用
   5、密码和认证。
   wget只能处理利用用户名/密码方式限制访问的网站,可以利用两个参数:
   --http-user=USER设置HTTP用户
   --http-passwd=PASS设置HTTP密码
   对于需要证书做认证的网站,就只能利用其他下载工具了,例如curl。


引用
   6、利用代理服务器进行下载。
   如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此时需要在当前用户的目录下创建一个.wgetrc文件。文件中可以设置代理服务器:
   http-proxy = 111.111.111.111:8080
   ftp-proxy = 111.111.111.111:8080
   分别表示http的代理服务器和ftp的代理服务器。如果代理服务器需要密码则使用:
   --proxy-user=USER设置代理用户
   --proxy-passwd=PASS设置代理密码
   这两个参数。
   使用参数--proxy=on/off 使用或者关闭代理。


   wget还有很多有用的功能,需要用户去挖掘。

wget的使用格式
Usage: wget [OPTION]... [URL]...
* 用wget做站点镜像:
wget -r -p -np -k http://dsec.pku.edu.cn/~usr_name/
# 或者
wget -m http://dsec.pku.edu.cn/~usr_name/
* 在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载
wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi -o down.log &
# 或者从filelist读入要下载的文件列表
wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft -i filelist.txt -o down.log &
上面的代码还可以用来在网络比较空闲的时段进行下载。我的用法是:在mozilla中将不方便当时下载的URL链接拷贝到内存中然后粘贴到文件filelist.txt中,在晚上要出去系统前执行上面代码的第二条。
* 使用代理下载
wget -Y on -p -k https://sourceforge.net/projects/wvware/
代理可以在环境变量或wgetrc文件中设定
# 在环境变量中设定代理
export PROXY=http://211.90.168.94:8080/
# 在~/.wgetrc中设定代理
http_proxy = http://proxy.yoyodyne.com:18023/
ftp_proxy = http://proxy.yoyodyne.com:18023/


wget各种选项分类列表
* 启动
 -V,  --version           显示wget的版本后退出
 -h,  --help              打印语法帮助
 -b,  --background        启动后转入后台执行
 -e,  --execute=COMMAND   执行`.wgetrc'格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc
* 记录和输入文件
 -o,  --output-file=FILE     把记录写到FILE文件中
 -a,  --append-output=FILE   把记录追加到FILE文件中
 -d,  --debug                打印调试输出
 -q,  --quiet                安静模式(没有输出)
 -v,  --verbose              冗长模式(这是缺省设置)
 -nv, --non-verbose          关掉冗长模式,但不是安静模式
 -i,  --input-file=FILE      下载在FILE文件中出现的URLs
 -F,  --force-html           把输入文件当作HTML格式文件对待
 -B,  --base=URL             将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
      --sslcertfile=FILE     可选客户端证书
      --sslcertkey=KEYFILE   可选客户端证书的KEYFILE
      --egd-file=FILE        指定EGD socket的文件名
* 下载
      --bind-address=ADDRESS   指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
 -t,  --tries=NUMBER           设定最大尝试链接次数(0 表示无限制).
 -O   --output-document=FILE   把文档写到FILE文件中
 -nc, --no-clobber             不要覆盖存在的文件或使用.#前缀
 -c,  --continue               接着下载没下载完的文件
      --progress=TYPE          设定进程条标记
 -N,  --timestamping           不要重新下载文件除非比本地文件新
 -S,  --server-response        打印服务器的回应
      --spider                 不下载任何东西
 -T,  --timeout=SECONDS        设定响应超时的秒数
 -w,  --wait=SECONDS           两次尝试之间间隔SECONDS秒
      --waitretry=SECONDS      在重新链接之间等待1...SECONDS秒
      --random-wait            在下载之间等待0...2*WAIT秒
 -Y,  --proxy=on/off           打开或关闭代理
 -Q,  --quota=NUMBER           设置下载的容量限制
      --limit-rate=RATE        限定下载输率
* 目录
 -nd  --no-directories            不创建目录
 -x,  --force-directories         强制创建目录
 -nH, --no-host-directories       不创建主机目录
 -P,  --directory-prefix=PREFIX   将文件保存到目录 PREFIX/...
      --cut-dirs=NUMBER           忽略 NUMBER层远程目录
* HTTP 选项
      --http-user=USER      设定HTTP用户名为 USER.
      --http-passwd=PASS    设定http密码为 PASS.
 -C,  --cache=on/off        允许/不允许服务器端的数据缓存 (一般情况下允许).
 -E,  --html-extension      将所有text/html文档以.html扩展名保存
      --ignore-length       忽略 `Content-Length'头域
      --header=STRING       在headers中插入字符串 STRING
      --proxy-user=USER     设定代理的用户名为 USER
      --proxy-passwd=PASS   设定代理的密码为 PASS
      --referer=URL         在HTTP请求中包含 `Referer: URL'头
 -s,  --save-headers        保存HTTP头到文件
 -U,  --user-agent=AGENT    设定代理的名称为 AGENT而不是 Wget/VERSION.
      --no-http-keep-alive  关闭 HTTP活动链接 (永远链接).
      --cookies=off         不使用 cookies.
      --load-cookies=FILE   在开始会话前从文件 FILE中加载cookie
      --save-cookies=FILE   在会话结束后将 cookies保存到 FILE文件中
* FTP 选项
 -nr, --dont-remove-listing   不移走 `.listing'文件
 -g,  --glob=on/off           打开或关闭文件名的 globbing机制
      --passive-ftp           使用被动传输模式 (缺省值).
      --active-ftp            使用主动传输模式
      --retr-symlinks         在递归的时候,将链接指向文件(而不是目录)
* 递归下载
 -r,  --recursive          递归下载--慎用!
 -l,  --level=NUMBER       最大递归深度 (inf 或 0 代表无穷).
      --delete-after       在现在完毕后局部删除文件
 -k,  --convert-links      转换非相对链接为相对链接
 -K,  --backup-converted   在转换文件X之前,将之备份为 X.orig
 -m,  --mirror             等价于 -r -N -l inf -nr.
 -p,  --page-requisites    下载显示HTML文件的所有图片
* 递归下载中的包含和不包含(accept/reject)
 -A,  --accept=LIST                分号分隔的被接受扩展名的列表
 -R,  --reject=LIST                分号分隔的不被接受的扩展名的列表
 -D,  --domains=LIST               分号分隔的被接受域的列表
      --exclude-domains=LIST       分号分隔的不被接受的域的列表
      --follow-ftp                 跟踪HTML文档中的FTP链接
      --follow-tags=LIST           分号分隔的被跟踪的HTML标签的列表
 -G,  --ignore-tags=LIST           分号分隔的被忽略的HTML标签的列表
 -H,  --span-hosts                 当递归时转到外部主机
 -L,  --relative                   仅仅跟踪相对链接
 -I,  --include-directories=LIST   允许目录的列表
 -X,  --exclude-directories=LIST   不被包含目录的列表
 -np, --no-parent                  不要追溯到父目录
问题
在递归下载的时候,遇到目录中有中文的时候,wget创建的本地目录名会用URL编码规则处理。如"天网防火墙"会被存为"%CC%EC%CD%F8%B7%C0%BB%F0%C7%BD",这造成阅读上的困难。

引用
wget -r -N -l 3 -np -p -b -k http://www.jobzone.cn



现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
Tags: ,
FreeBSD的默认文件系统是ufs,如果要对其它文件系统的支持,就要在内核中增加相应的文件系统,然后重新编译内核,常用的MSDOS,CD9660在GENERIC内核(系统默认内核)中已有,而Linux的ext2fs没有,为了对ext2fs的支持,在内核中增加一行:

options "EXT2FS"


重新编译内核,重启机器。

可用fdisk /dev/wd0查看硬盘wd0的slice情况,对于FreeBSD的slice,还可用disklabel -r /dev/wd0s1命令来查看硬盘wd0的第一个slice的情况。进入/dev,查看硬盘设备,如还没有相应的,可用sh MAKEDEV建相应设备

这些工作之后,就可用mount命令了,例如:
/mnt为目录,该目录必须存在

1.mount FAT/FAT32分区:(C盘为例)
引用
mount -t msdos /dev/ad0s1 /mnt


mount_msdos /dev/ad0s1 /mnt for 4.x
mount_msdosfs /dev/ad0s1 /mnt for 5.x


2.mout Windows的扩展分区(FAT/FAT32):

引用
命令和1一样,只是要记住:扩展分区从s5开始,例如mount D盘,可用:

mount -t msdos /dev/ad0s5 /mnt

mount_msdos /dev/ad0s5 /mnt for 4.x

mount_msdosfs /dev/ad0s5 /mnt for 5.x


3.mount NTFS分区:(C盘为例)
引用

mount -t ntfs /dev/ad0s1 /mnt



mount_ntfs /dev/ad0s1 /mnt

[注意]1.chinese/gbfs 的 ntfs 似乎有问题,不建议玩家级用户使用

注意2.:要让mount上的windows 分区(或CD-ROM)显示中文,需要升级你的ports,再安装gbfs:

#cd /usr/ports/chinese/gbfs

#make install clean

然后编译内核,注释掉options CD9660

options MSDOS

注意3.在5.1-current上不用安装gbfs,用:

mount_msdosfs -L zh_CN.GB18030 /dev/ad0sX /mnt

命令就可以支持FAT32分区上的中文文件名,当然,locale可以不用18030,zh_CN.eucCN, zh_CN.GBK都可以!

4.mount Linux Ext2fs/Ext3fs:
引用
在内核里面加入options EXT2FS,编译内核。

mount 的时候用mount_ext2fs 命令即可,ext3fs的mount也用mount_ext2fs

5.mount 普通数据光盘:
引用
mount_cd9660 /dev/acd0 /cdrom


6.mount ISO 文件
引用

在5.x中如下

mdconfig -a -t vnode -f abc.iso -u 1

mount_cd9660 /dev/md1 /cdrom

4.8的版本

vnconfig /dev/vn0 /home/xiaoche/a.iso

mount -t cd9660 /dev/vn0 /mnt

umount /mnt

vnconfig -u /dev/vn0


7.mount CD、VCD、DVD
引用

播放CD、VCD、DVD不用先mount上。

如果你一定要mount上,可以这样:#mount _cd9660 -s 0 /dev/acd0 /cdrom

8.mount 软盘:
引用

1.Format:

# /usr/sbin/fdformat -f 1440 /dev/fd0

2. Run disklabel:

# /sbin/disklabel -B -r -w /dev/fd0 fd1440

3.Create New FS:

# /sbin/newfs_msdos /dev/fd0

4.Mount & Use

#mount_msdosfs /dev/fd0 /mnt


9.mount usb

引用
确保内核中有如下项

device scbus

device da

device cd

在GENERIC中默认都有,如果没有,请编译内核。

大多数U盘用的是FAT 文件系统,所以用

mount -t msdos /dev/da0 /mnt

挂载




10.mount ZIP软盘:
引用
#mount_msdosfs /dev/afd0s4 /mnt/zip


说了这么多,就是没说在freeBSD系统多块硬盘怎么挂载,现在请看下面的:
引用
1.用systinstall 分区,测试,安装最小系统(已经格式化)
2.newfs /dev/ad1s1 格式化命令(第一步未格式化才需执行)
3.mount /dev/ad1s1 /disk1/ (挂载硬盘1到/disk1/目录下,该目录必须存在)
4.vi /etc/fstab (加入/dev/ad1s1              /disk1          ufs     rw              1       1,这样开机重启就可以自动挂载了)


希望上面的知识能够让大家更加了解freeBSD。有什么疑问请加QQ:29011218或MSN:onenight11@hotmail.com交流。


现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
Tags: , ,
一、驱动类型 驱动设备名
引用
IDE hard drives --- ad in 4.0-RELEASE, wd before 4.0-RELEASE.

IDE CDROM drives --- acd from 3.1-RELEASE, wcd before 4.0-RELEASE.

SCSI hard drives --- da from 3.0-RELEASE, sd before 3.0-RELEASE.

SCSI CDROM drives --- cd

Assorted non-standard CDROM drives--- mcd for Mitsumi CD-ROM, scd for Sony CD-ROM,

matcd for Matsushita/Panasonic CD-ROM

Floppy drives --- fd

SCSI tape drives --- sa from 3.0-RELEASE, st before 3.0-RELEASE.

IDE tape drives --- ast from 4.0-RELEASE, wst before 4.0-RELEASE.

Flash drives --- fla for DiskOnChip Flash device from 3.3-RELEASE.

RAID drives --- myxd for Mylex, amrd for AMI MegaRAID, idad for Compaq

Smart RAID. from 4.0-RELEASE. id between 3.2-RELEASE and 4.0-RELEASE.



硬盘的编号从0开始,例如在3.4-release中,第一个IDE硬盘是wd0。



二、分区的问题
FreeBSD的硬盘分割区域称为slice(片段或部分),一个硬盘最多可有四个FreeBSD的slice,FreeBSD的开机区必须在这些slice其中之一。每一个FreeBSD的slice有8个partition,分别称为a,b,c,d,e,f,g,h,传统上a,b,c,d分区有特殊的意义,a表示root分区,b表示swap分区,c表示整个slice,d表示整个硬盘,从FreeBSD-2.0.5 Release开始,FreeBSD发展了新的slice概念,只有c内定位整个slice,其它都可自由使用,但一般还是遵循传统观念,即a:root,b:swap,efgh:其它使用。

对于非FreeBSD的slice,没有a,b,c等的partition概念。对于DOS扩展分区的逻辑公区,是从s5开始的,例如,对于3.4-release中,第一个IDE硬盘的第一个扩展区的第一个逻辑分区是wd0s5,第二个逻辑分区是wd0s6。


现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
  HTTP 404 错误意味着链接指向的网页不存在。在网站建设中想要完全避免这种情况是不可能的,比如说,我们常常需要对网站进行调整、改版,便会有网页被删除、改名或移动位置,这时候,虽然相应内容的网页还存在于网站中,但使用原来的地址访问则无法访问。——当然,对这类情况首先要考虑的是为原来页面地址做301重定向,以尽可能地减小对SEO效果的影响。——其次,在别人建立指向网站的链接时,也可能会由于出现拼写错误而使其成为一个无效的链接:在网站内找不到相应的内容页面。

  简单说来,这类无效链接是由web服务器自动处理的:当Web 服务器接到类似的数据请求量,会返回一个 404 状态码,告诉对方其要请求的资源并不存在。但是,Web服务器默认的404错误页面,无论Apache还是IIS,均十分简陋、呆板且对用户不友好,无法给予用户寻找相应信息的更多线索,用户看到这类页面往往最直接的反应并是关闭浏览器窗口离开,这在很大程度上给网站造成损失。毕竟,对网站来说,用户永远是最重要的资源,以这种方式损失用户更意味着某种程度的失败。

  这也是许多网站使用自定义404错误页面的原因。通过良好的自定义404页面,可以包含对网站的相应介绍、用户可能感兴趣的内容链接或者网站内容导航链接、内容搜索功能等,能够有效地帮助访问者找到其欲寻找的内容或相似的内容,提高用户在网站内浏览更多信息的机会。

自定义404错误页面返回“200”或“302”状态码
  从严格的技术角度,网站对404错误的处理策略,并不是一个SEO方面的工作,而属于网站可用性(usability)方面的问题。——当然,如果从广义的SEO范畴来看,提高网站可用性也属于SEO的基本操作。——但是,如果自定义404错误页面设置不当,则会极大地影响网站的SEO效果。

  在许多朋友的印象中,自定义404错误页面只要能正确显示,只要能输入网站内某个并不存在的网页地址,在浏览器中能看到自定义的错误信息,便说明设置没问题。惭愧地说,本人也是抱有这种想法的一员,IT技术点评运行将近一年了,近日因Google更新后排名下降检查网站时才发现存在类似的错误:一个正确设置的404页面,不仅应当正确地显示,同时,应该能够正确返回“404”错误代码,而不是“200”或“302”。虽然对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎而言,这则是相当重要的。

  为什么这么说呢?让我们先来回顾一下搜索引擎收录与索引网页的过程:搜索引擎的Spider向网站服务器发送请求,要求读取某个网页,网站服务器接到请求后返回 HTTP 状态码响应请求,这些返回的HTTP状态码决定着搜索引擎的下一步行动:将该网页收录到索引数据库或者将其从索引数据库删除等。

  当然,HTTP状态码有很多种,分别对应不同的情况,下面就与本文内容相关的几种作一简单介绍,更详细的信息可参考W3C规范:

404 : 请求的网页不存在(不排除日后该链接有效的可能性);
410 : 请求的网页不存在(永久);
200 : 服务器成功返回网页
302 : 网址临时重定向(跳转)
301 : 网址永久重定向
  需要说明的是,大部分搜索引擎将“404”与“410”状态同等对待,如Google。(参见Matt Cutts的说明)

  当搜索引擎在请求某个Url时得到“404”状态回应时,便会知道该网页在网站内不复存在,从而在索引数据库中将其删除,——当然,这个删除过程有可能需要很长时间——而当搜索引擎得到“200”状态回应时,则会认为该url是有效的,并将其回到到索引数据库中。

404页面返回“200”状态码的后果
  如果网站的自定义404错误页面在url无效时不返回“404”状态码而代之以“200”,会发生什么情况呢?很明显,搜索引擎会认为这个“根本不存在的”网页在网站内是存在的,这会导致很多问题,影响网站的最终SEO效果。

  举例来说,比如说对“http://www.highdiy.com/a.html”、“http://www.highdiy.com/b.html”这两个在IT技术点评网站内并不存在的url而言,如果搜索引擎得到的回应状态码是“200”,那么,便会将其收录到索引数据库,这样的结果便是这两个不同的url具有完全相同的内容:自定义404错误页面的内容,这类重复文本(Duplicate Content)的现象对许多搜索引擎而言都是大忌。尤其是考虑到网站中不可能只有这两个无效链接,毕竟在网站建设中,无论网站的内部链接还是外部链接,总会不可避免地出现许多比如说拼写错误的情况,类似的重复内容会更多。这样,对搜索引擎而言,特别是Google,不但很难获得理想的网站信任指数,也会大大降低Google对网站质量的评定。

404错误页使用Meta Refresh带来的302问题
  常常看到许多网站的自定义404错误页面采取类似这样的形式:首先显示一段错误信息,然后,通过Meta Refresh将页面跳转到网站首页、网页地图或其他类似页。根据具体实现方式不同,这类404页面可能返回“200”状态码,也可能返回“302”,但不论哪种,从SEO的角度看,均不是一种合适的选择。

  对“200”状态的情况我们上面已经谈过,那么,当404页面返回“302”时,搜索引擎会怎么对待呢?从理论上说,对“302”错误,搜索引擎认为该网页是存在的,只不过临时改变了地址,仍然会索引收录该页,这样,同样会出现类似于“200”状态码时的重复文本问题;其次,以google为代表的主流搜索引擎对302重定向的适用范围要求越来越严格,这类不当使用302重定向的情况存在很大的风险。

  因此,尽量不要在404错误页中使用这类Meta Refresh方法。如果实现希望实现类似的功能,即让显示错误信息几(十)秒后跳转到首页或其他页面,可以考虑在404错误页中使用Java Script跳转。——Java Script对搜索引擎而言是无益同时也无害的。  

确保自定义404错误页面能够返回“404”状态码
  在自定义404错误页面设置完毕后,一定要检查一下其是不是能够正确地返回“404”状态码。

  检查的方法也相当简单,使用本站提供的Server Header检查工具,或其他类似工具如这个,输入一个网站内不存在网页的url,查看一下HTTP Header的返回情况,确信其返回的是“404 Not found”。

现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。
PHP培训招生简章
Tags: ,
100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)

101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)

200 OK 一切正常,对GET和POST请求的应答文档跟在后面。

201 Created 服务器已经创建了文档,Location头给出了它的URL。

202 Accepted 已经接受请求,但处理尚未完成。

203 Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。

204 No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。

205 Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。

206 Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。

300 Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。

301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。

302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。
出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。

注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求http://host/~user(缺少了后面的斜杠),有的服务器返回301,有的则返回302。

严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。

303 See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。

304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。

305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取(HTTP 1.1新)。

307 Temporary Redirect 和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。(HTTP 1.1新)

400 Bad Request 请求出现语法错误。

401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。

403 Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。

404 Not Found 无法找到指定位置的资源。这也是一个常用的应答。

405 Method Not Allowed 请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。(HTTP 1.1新)

406 Not Acceptable 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容(HTTP 1.1新)。

407 Proxy Authentication Required 类似于401,表示客户必须先经过代理服务器的授权。(HTTP 1.1新)

408 Request Timeout 在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。(HTTP 1.1新)

409 Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。(HTTP 1.1新)

410 Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。(HTTP 1.1新)

411 Length Required 服务器不能处理请求,除非客户发送一个Content-Length头。(HTTP 1.1新)

412 Precondition Failed 请求头中指定的一些前提条件失败(HTTP 1.1新)。

413 Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头(HTTP 1.1新)。

414 Request URI Too Long URI太长(HTTP 1.1新)。

416 Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头。(HTTP 1.1新)

500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求。

501 Not Implemented 服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。

502 Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。

503 Service Unavailable 服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。

504 Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。(HTTP 1.1新)

505 HTTP Version Not Supported 服务器不支持请求中所指明的HTTP版本。(HTTP 1.1新)
Tags: ,
分页: 1/3 第一页 1 2 3 下页 最后页 [ 显示模式: 摘要 | 列表 ]