http状态码和我踩进去的坑

http状态码

定义:HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码

分类:

1xx:
作为临时的响应,代表请求已经被受理,服务器用来向客户端指定客户端应该有的后续动作。

2xx:请求成功,服务器已经接受并且会处理它

3xx:这类状态码代表需要客户端采取进一步的操作才能完成请求。用于重定向。后续的请求地址(重定向目标)在本次响应的 Location 域中指明。这个我在腾讯云上抓包看见过。但是自己没包装过相关的http包。

4xx:客户端出错,返回大概的可能的出错原因。

5xx:服务器出错,返回出错的原因。

6xx:源站没有返回响应头部,只返回实体内容(这句话是百度的,留个点,日后说不定能遇见这个码)

具体的http码:

http码 解释
100 客户端仍应该继续发送剩余请求,所有请求完成后,服务器会给客户端最终响应
101 提醒客户端按照服务器发来的信息改变请求方式
200 请求已经成功,响应头和数据随即发出
201 服务器根据客户端的请求建立了新的文件,随即会把新文件的url发送回客户端
202 服务器正在处理请求,但是能不能处理完成,还不一定,用于异步场合
203 告诉客户端当前使用的文件是源文件的拷贝,因此应答的http头部可能会出错
204 服务器接受了请求,但是不会返回任何内容,客户端应该保持原有界面的内容
205 服务器不凡会任何内容,但是可以让去掉视图,相当于去掉原来的内容,等用户新一次的输入
206 服务器处理了一部分GET请求
300 被请求的资源在服务器中可以选择具体哪一个
301 被请求的资源已经永久被移动到了别的位置
302 资源被临时移动,url应该坚持原来的,不能更改
303 改变提取文件的方法。原来是POST,那么用GET提取文件
304 所请求的资源没有修改,那么返回这个码,并且不返回资源,因为客户端会缓存原来的文件
305 使用代理,资源通过代理访问
306 这个状态码已经不用了
307 同302
400 请求的语法不对
401 请求进行用户身份认证
402 用户在没有权限的情况下唐突访问收到密码保护的界面
403 由于权限问题,资源不可用
404 找不到指定资源
405 所用的请求方法对资源不适合
406 无法根据请求完成任务
407 用户必须要经过代理服务器授权
408 服务器在特定时间内没有收到客户端的请求
409 服务器请求资源时候发生冲突
410 文档由于已知原因不可用
411 服务器不能处理请求,除非客户发送一个Content-Length头
412 请求头中指定的前提条件失败
413 文档超过了服务器当前愿意处理的大小,但是服务器会稍后处理的
414 url太长,感觉这个错误有点搞笑
415 有服务器无法处理的媒体格式
416 服务端的请求范围无效,这个原因感觉说得很模糊
500 存在服务器无法处理的意外
501 服务器不支持请求需要的功能
502 服务器不能处理请求,除非客户发送一个Content-Length头
503 服务器太忙或者在维护中
504 作为网管或者服务器,不能及时地从远程服务器获得应答
505 不支持请求的http版本
600 源站没有返回响应头部,只返回实体内容(这个我看了好多博客都没有提到600码,感觉也不是很清楚)

终于写完了………….

下面说说我踩的坑

是这样的,在绝望之际,我还发帖子问了问别人。
http://bbs.csdn.net/topics/392207311
我当时的1.html已经删了。后来我直接scp了我腾讯云上的index.html,in.php,zhuziyu.html,还有几张图片.把相关url更改为127.0.0.1,发现http对于图片的请求包还是没有发出去。

总不能是浏览器自己的问题吧。。。还不是欺负我技术差!我就control + shift+ I 点开了控制台这个选项,发现是这样的:
错误102,net::connection::refused。
经查证是url写错了。这段是直接从腾讯云上搬下来的,只更改了ip还有对应的目录。再查再查,没有加端口!

没有加端口!
wrong写法:
http://127.0.0.1/home/zhuziyu/server/servermanage/图片.jpg
right写法:
http://127.0.0.1:20000/home/zhuziyu/server/servermanage/图片.jpg
没有加端口!
没有加端口!
没有加端口!

好了,搞定了!决定写一个简单的web服务器之后,先后验证了线程池库,进程池库,epoll库,还有测试了一个main函数用来代替日后的工作进程。自此,我对web服务器的验证全部结束。目前没有验证的是http具体的处理库。测试以来,一直让我不晓得的bug竟然是端口问题,难怪我把班长的订餐界面拿下来都是好的,html在腾讯云上也是好的,就是到了本地不行。
吃什么最长记性?亏。

你可能感兴趣的:(服务器)