原创 一起学习HTTP协议

2014-12-22 16:59 1121 27 29 分类: 通信 文集: 产品应用

网络出现后,带给人们生活上的改变是,我们可以随时随地在www网络浏览器网页上获取想要的信息。由于www内容丰富,浏览方便,也已经成为互联网重要要的服务。

那么超文本传输协议HTTP(Hypertext transfer protocol),是一种从www服务器传输超文本到本地浏览器的传送协议。简单地说,HTTP协议就是用户通过浏览器访问Web服务器的方式,并具备B/S(Browser/Server )结构。

今天就来与大家分享一下HTTP协议的学习。

  • 在TCP/IP协议栈中的位置

HTTP协议承载于TCP协议之上,是一个应用层协议。有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示:

HTTP1

  • HTTP的请求响应模型

HTTP2

HTTP协议永远都是客户端发起请求,服务器回送响应。HTTP协议是一个无状态的协议,不会记得“上一个请求是什么”。

  • 协议流程

HTTP3

一次HTTP操作称为一个事务,其工作过程可分为四步:

1)建立连接。只要单击某个超级链接,HTTP的工作开始。

2)客户端发送请求。请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

3)服务器响应。其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

4)连接断开。当服务器的响应信息显示到客户端的浏览器上,一次HTTP操作结束

那么,先来看一下建立连接的过程:

  • 建立连接

HTTP/1.0 每次请求都需要建立新的TCP连接,连接不能复用。HTTP/1.1 新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。

请求消息格式

请求消息格式如下所示:

请求行 通用信息头|请求头|实体头 CRLF(回车换行实体内容

其中“请求行”为:请求行 = 方法 [空格] 请求URI [空格] 版本号 [回车换行]

HTTP4

请求方法

HTTP的请求方法常用如下几种:

1、GET:对服务器资源的简单请求,从服务器上获取数据。

2、POST:向服务器传送数据,主要是向服务器提交表单数据,尤其是大批量的数据。

3、HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头。

那么,相对应的响应过程也与连接过程类似:

  • HTTP响应

响应消息格式

HTTP响应消息的格式如下所示:

状态行 通用信息头|响应头|实体头 CRLF 实体内容

其中:状态行 = 版本号 [空格] 状态码 [空格] 原因 [回车换行]

HTTP5

HTTP的状态响应码

200段是成功,300段需要对请求做进一步的处理,400段表示客户端请求错误,500段是服务器的错误。

① 客户方错误

100  继续:表示已收到请求的第一部分,正在等待其余部分。

101  交换协议:请求者已要求服务器切换协议,服务器已确认并准备切换。

② 成功

200  OK:表示服务器提供了请求的网页。

201  已创建:请求成功并且服务器创建了新的资源。

202  接收:表示服务器提供了请求的网页。

203  非认证信息:服务器已成功处理了请求,但返回的信息可能来自另一来源。

204  无内容:服务器成功处理了请求,但没有返回任何内容。

205  重置内容:服务器没有返回任何内容。此响应要求请求者重置文档视图。

206  部分内容:服务器成功处理了部分 GET 请求。

③ 重定向

300  多路选择:服务器可根据请求者选择一项操作,或提供操作列表供请求者选择。

301  永久转移:请求的网页已永久移动到新位置。

302  暂时转移:服务器目前从不同位置的网页响应请求,但申请人应当继续使用原有位置来响应以后的请求。

303  参见其它:请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。

继续阅读:

http://www.iwiznet.cn/blog/?p=6692

文章评论2条评论)

登录后参与讨论

用户1647523 2014-12-26 09:00

谢谢!我们官方博客:blog.iwiznet.cn还有更多内容,这里博文有字数限制,总是发不完!

用户1252893 2014-12-22 17:17

这个不错,我喜欢。
相关推荐阅读
用户1647523 2018-01-09 16:09
教你如何通过MCU配置S2E为TCP Client的工作模式
在上两篇文章中分别讲述了通过MCU配置S2E为UDP、TCP Server的工作模式”,相信小伙伴们已经对S2E的基本功能了解了一些,现在就让我们再接再厉、更上一层楼吧:首先我们先了解一下MCU与S2...
用户1647523 2018-01-09 15:53
教你如何通过MCU配置S2E为TCP Server的工作模式
在上一篇文章中讲了“如何通过MCU配置S2E为UDP模式”,相信小伙伴们已经了解了S2E的基本功能,在这一篇中,我们再接再厉,继续学习一下“如何通过MCU配置S2E为TCP Server的工作模式”,...
用户1647523 2018-01-09 14:44
教你如何通过MCU将S2E配置为UDP的工作模式
​​W5500S2E-S1是一款工业级串口转以太网模块,支持TCP Server、TCP Client和UDP三种工作模式,串口波特率最高可达1.152Mbps,并提供配套的上位机配置软件,也可通过网...
用户1647523 2015-12-09 13:53
第四届韩合集成电路技术交流会成功举办
2015年12月2日,第四届韩合集成电路技术交流会在WESTIN酒店深圳世界之窗店顺利举办。本届交流会与会嘉宾主要是韩合集成电路项目的主要领导、驻在深圳的9家韩合IC企业以及相关企业代表,主要围绕...
用户1647523 2015-12-09 13:46
第四届韩合集成电路技术交流会成功举办
2015年12月2日,第四届韩合集成电路技术交流会在WESTIN酒店深圳世界之窗店顺利举办。本届交流会与会嘉宾主要是韩合集成电路项目的主要领导、驻在深圳的9家韩合IC企业以及相关企业代表,主要围绕...
用户1647523 2015-10-16 14:47
WIZnet芯片在智能家居市场的应用
2014年是智能家居和可穿戴设备集中发力的一年。传统家电厂商、互联网企业和智能终端企业都虎视眈眈的盯着这个巨大的蛋糕,初创企业也借助各种众筹平台将自己的新奇创意转换为实际产品并推进市场,各种智能家...
我要评论
2
27
关闭 站长推荐上一条 /2 下一条