C语言构建WEB管理系统(一):了解http协议
2016-03-16 09:32
639 查看
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途】
既然要讲web开发就离不开HTTP协议,http协议是web的核心。HTTP定义Web客户(即浏览器)如何从web服务器请求Web页面,以及服务器如何把Web页面传送给客户。当用户请求一个Web页面(譬如说点击某个超链接)时,浏览器把请求该页面中各个对象的HTTP请求消息发送给服务器。服务器收到请求后,以运送含有这些对象HTTP响应消息作为响应。
一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符 (URL) 、协议版本号,后边是MIME (多用途的网际邮件扩充协议) 信息,包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息,包括服务器信息、实体信息和可能的内容等。
下面是一个典型的HTTP请求消息:
中间几行为请求头标 由“关键字:值”对组成,每行一对,关键字和值用冒号(:)分隔。请求头标通知服务器有关于客户端的功能和标识,典型的请求头标有:
User-Agent 客户端厂家和版本
Accept 客户端可识别的内容类型列表
Content-Length 附加到请求的数据字节数
最后一个请求头标之后是一个空行,发送回车符和退行,通知服务器以下不再有头标。
如果使用POST传送数据,最常使用的是Content-Type和Content-Length头标。
Web服务器解析请求,定位指定资源。服务器将资源副本写至套接字,在此处由客户端读取。一个响应由四个部分组成;状态行、响应头标、空行、响应数据。
下面是一个典型的HTTP响应消息:
第一行为状态行,由三个标记组成:HTTP版本、响应代码和响应描述。HTTP版本:向客户端指明其可理解的最高版本。响应代码:3位的数字代码,指出请求的成功或失败,如果失败则指出原因。响应描述:为响应代码的可读性解释。
中间几行为响应头标:像请求头标一样,它们指出服务器的功能,标识出响应数据的细节。
最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不再有头标。
最后为响应数据:HTML文档和图像等。
http协议的每一次请求和响应都是相对独立的,一般而言,一个URL对应着唯一的超文本,无论对谁,HTTP服务器都会根据接收到的URL请求返回相同的超文本,所以HTTP模型是无状态的,在处理一个请求时,Web服务器并不记住来自同一客户端的请求。
既然要讲web开发就离不开HTTP协议,http协议是web的核心。HTTP定义Web客户(即浏览器)如何从web服务器请求Web页面,以及服务器如何把Web页面传送给客户。当用户请求一个Web页面(譬如说点击某个超链接)时,浏览器把请求该页面中各个对象的HTTP请求消息发送给服务器。服务器收到请求后,以运送含有这些对象HTTP响应消息作为响应。
一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符 (URL) 、协议版本号,后边是MIME (多用途的网际邮件扩充协议) 信息,包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息,包括服务器信息、实体信息和可能的内容等。
下面是一个典型的HTTP请求消息:
GET /index.html HTTP/1.1 Host:www.shallnet.cn Connection:close User-agent:Mozilla/4.0 Accept-language:zh-cn \r\n上面第一行为请求行,由三个标记组成:请求方法、请求URI和HTTP版本,它们用空格分隔。
中间几行为请求头标 由“关键字:值”对组成,每行一对,关键字和值用冒号(:)分隔。请求头标通知服务器有关于客户端的功能和标识,典型的请求头标有:
User-Agent 客户端厂家和版本
Accept 客户端可识别的内容类型列表
Content-Length 附加到请求的数据字节数
最后一个请求头标之后是一个空行,发送回车符和退行,通知服务器以下不再有头标。
如果使用POST传送数据,最常使用的是Content-Type和Content-Length头标。
Web服务器解析请求,定位指定资源。服务器将资源副本写至套接字,在此处由客户端读取。一个响应由四个部分组成;状态行、响应头标、空行、响应数据。
下面是一个典型的HTTP响应消息:
HTTP/1.1 200 0K Connectlon:close Date: Thu, 13 Oct 2005 03:17:33 GMT Server: Apache/2.0.54 (Unix) Last—Nodified:Mon,22 Jun 1998 09;23;24 GMT Content—Length:682 Content—Type:text/html (data data data…………)
第一行为状态行,由三个标记组成:HTTP版本、响应代码和响应描述。HTTP版本:向客户端指明其可理解的最高版本。响应代码:3位的数字代码,指出请求的成功或失败,如果失败则指出原因。响应描述:为响应代码的可读性解释。
中间几行为响应头标:像请求头标一样,它们指出服务器的功能,标识出响应数据的细节。
最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不再有头标。
最后为响应数据:HTML文档和图像等。
http协议的每一次请求和响应都是相对独立的,一般而言,一个URL对应着唯一的超文本,无论对谁,HTTP服务器都会根据接收到的URL请求返回相同的超文本,所以HTTP模型是无状态的,在处理一个请求时,Web服务器并不记住来自同一客户端的请求。
相关文章推荐
- java-WEB中的监听器Lisener
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- Linux C函数参考手册(PDF版)
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- 自学成才的秘密:115个 web Develop 资源
- C# partial关键字说明
- 使用批处理修改web打印设置笔记 适用于IE
- Apache Web让JSP“动”起来
- Lua教程(十七):C API简介
- 简单谈谈lua和c的交互
- GET和post取值限制区别分析
- web下载的ActiveX控件自动更新
- 推荐六款WEB上传组件性能测试与比较第1/10页
- 关于三种主流WEB架构的思考