C语言构建WEB管理系统(一):了解http协议
来源:互联网 发布:资金趋势指标公式源码 编辑:程序博客网 时间:2024/06/04 20:03
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途】
既然要讲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.cnConnection:closeUser-agent:Mozilla/4.0Accept-language:zh-cn\r\n上面第一行为请求行,由三个标记组成:请求方法、请求URI和HTTP版本,它们用空格分隔。
中间几行为请求头标 由“关键字:值”对组成,每行一对,关键字和值用冒号(:)分隔。请求头标通知服务器有关于客户端的功能和标识,典型的请求头标有:
User-Agent 客户端厂家和版本
Accept 客户端可识别的内容类型列表
Content-Length 附加到请求的数据字节数
最后一个请求头标之后是一个空行,发送回车符和退行,通知服务器以下不再有头标。
如果使用POST传送数据,最常使用的是Content-Type和Content-Length头标。
Web服务器解析请求,定位指定资源。服务器将资源副本写至套接字,在此处由客户端读取。一个响应由四个部分组成;状态行、响应头标、空行、响应数据。
下面是一个典型的HTTP响应消息:
HTTP/1.1 200 0KConnectlon:closeDate: Thu, 13 Oct 2005 03:17:33 GMTServer: Apache/2.0.54 (Unix)Last—Nodified:Mon,22 Jun 1998 09;23;24 GMTContent—Length:682Content—Type:text/html(data data data…………)
第一行为状态行,由三个标记组成:HTTP版本、响应代码和响应描述。HTTP版本:向客户端指明其可理解的最高版本。响应代码:3位的数字代码,指出请求的成功或失败,如果失败则指出原因。响应描述:为响应代码的可读性解释。
中间几行为响应头标:像请求头标一样,它们指出服务器的功能,标识出响应数据的细节。
最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不再有头标。
最后为响应数据:HTML文档和图像等。
http协议的每一次请求和响应都是相对独立的,一般而言,一个URL对应着唯一的超文本,无论对谁,HTTP服务器都会根据接收到的URL请求返回相同的超文本,所以HTTP模型是无状态的,在处理一个请求时,Web服务器并不记住来自同一客户端的请求。
1 0
- C语言构建WEB管理系统(一):了解http协议
- C语言构建WEB管理系统(二):了解CGI
- C语言构建WEB管理系统(三):CGI程序解析GET数据
- C语言构建WEB管理系统(四):CGI程序解析POST数据
- C语言构建WEB管理系统(五):CGI实现上传文件
- C语言构建WEB管理系统(六):使用XMLHttpRequest对象和服务端交换数据
- 从零开始学习Java Web(一):在代码中了解HTTP协议
- web(一)丶HTTP协议
- 你所应该了解的HTTP协议(一)
- 了解C语言之指针(一)
- C语言构建BMP文件(一)
- python3爬虫笔记(一):了解HTTP协议
- java web一HTTP协议
- (二)http协议了解
- 图解HTTP读书笔记(一 了解web与网络基础)
- 图解http整理(了解web及网络基础一)
- HTTP协议笔记(一):Web网络基础
- (C语言课程设计)图书管理系统
- svg性能低?能展现的点比较少?真的是这样吗?
- openstack 命令行管理二十一 - 云盘管理 (备忘)
- ERROR: '/usr/local/bin' is not writable - it is required for Homebrew, try 'brew doctor' to fix it!
- 关于建立本地web服务器的几种方法
- JS中String的高级操作
- C语言构建WEB管理系统(一):了解http协议
- 《小怨念》
- IO的五种模型(关于同步与异步,阻塞与非阻塞)
- R语言可视化---介绍一些强大的画图和数据处理包及函数(ggplot,melt())
- [图像处理]边缘提取以及Harris角点检测
- Python琐碎知识总结
- android 4.3之后使用ccache提供编译速度
- 常用 Git 命令清单
- OI省选算法汇总