你知道404 Not Found吗?

作用的过程

当你在浏览器上的地址栏输入网址http://kids.codepku.com,按回车键,就可以访问到编程少年网站。这整个过程是由URL定位编程少年这个网站,然后服务器通过HTTP协议将网站上的资源传送到浏览器,用户按回车键后就访问到了网站,也就是获得了资源。网址在专业术语上称为URL,是Uniform Resource Locator(统一资源定位符)的缩写,用来定位网络上的网页、图片、文字等的资源。我们知道,一个网址通常是以http开头的,这个http定义的是网络资源的传送方式,称为HTTP协议。HTTP协议是HyperText Transfer Protocol(超文本传输协议)的缩写,是互联网上应用最为广泛的一种网络协议,采用了请求/响应模型来定义客户端如何从服务器请求Web页面,以及服务器如何把Web页面传送给客户端,客户端是指我们电脑上的浏览器。

HTTP协议过程包括4个步骤。

(1)建立连接:客户端的浏览器向服务端发出建立连接的请求,服务端给出响应就可以建立连接了。

(2)发送请求:客户端按照协议的要求通过连接向服务端发送自己的请求。

(3)给出应答:服务端按照客户端的要求给出应答,把结果(HTML文件)返回给客户端。

(4)关闭连接:客户端接到应答后关闭连接。

这个过程可以理解为,浏览器通过URL的定位知道了自己要的是什么,然后向服务器说我要一个东西,服务器接收到浏览器的要求,开始查找它想要的东西,找到之后回答说我找到这个东西了(有时可能找不到或者出现其他错误),然后把这个东西拿给浏览器,这时你就在浏览器上看到了相应的网页。

发送请求Request

发送请求的格式包括四个部分:请求行(request line)、请求头部(header)、空行和请求数据。

实例:

GET /hello.htm HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: example.com Accept-Language: en-us Accept-Encoding: gzip, deflate

本实例中请求数据为空,也就是说,除第一行外都是请求头部的部分。

请求行以一个请求方法开头,然后空格分开,后面跟着请求的URL和HTTP协议的版本: GET /hello.html HTTP/1.1

实例说明:请求方法为GET,定位的资源符是/hello.html,协议的版本是1.1版。

请求方法是用于定义操作资源的方式,HTTP/1.1 协议中定义了八种请求方法:

GET:读取资源数据

POST:新建资源数据

PUT:更新资源数据

DELETE:删除资源数据

HEAD:读取资源的元数据

OPTIONS:读取该资源所支持的所有请求方法

TRACE:回显服务器收到的请求,主要用于测试或诊断

CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。

请求头部用来说明服务器要使用的附加信息、传递客户端的更多信息,以及传递解析请求数据的必要信息空行,用来说明请求头部的结束和请求数据的开始。请求数据,是发送请求的主体,承载数据,是可选的。

给出应答(响应消息Response)

HTTP响应由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

实例:

HTTP/1.1 200 OK Date: Fri, 22 May 2009 06:07:21 GMT Content-Type: text/html; charset=UTF-8 <html> <head></head> <body> <!--body goes here--> </body> </html>第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成

第一行为状态行,HTTP/1.1表明HTTP版本为1.1版本,状态码为200,状态消息为ok。

常见的状态码:

200 OK//客户端请求成功

400 Bad Request //客户端请求有语法错误,不能被服务器所理解

401 Unauthorized //请求未经授权

403 Forbidden//服务器收到请求,但是拒绝提供服务

404 Not Found //请求资源不存在,比如输入了错误的URL

500 Internal Server Error//服务器发生不可预期的错误

503 Server Unavailable//服务器当前不能处理客户端的请求,一段时间后可能恢复正常

比如,当我们输错网址时就会看到404 Not Found的页面:

第二部分:消息报头,用来说明客户端要使用的一些附加信息

第二行和第三行为消息报头,Date:生成响应的日期和时间;

Content-Type:指定了消息内容的类型为HTML(text/html),编码类型是UTF-8

第三部分:空行,消息报头后面的空行是必须的

第四部分:响应正文,服务器返回给客户端的文本信息

空行后面的html部分为响应正文。

以上内容转载自编程少年青少年编程爱好者学习交流社区 - 编程少年

今日原创游戏推荐:AmbitionOS 2.2

PS:编程少年社区中的原创游戏是孩子们自己的作品,请点入链接并准备打分或评论的知友考虑到这一点,并多给予鼓励,谢谢大家。