加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

HTTP协议漫谈

发布时间:2017-05-07 07:22:05 所属栏目:建站 来源:博客园
导读:副标题#e# 简介 园子里已经有不少介绍HTTP的的好文章。对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将HTTP协议的元素进行分类讲解。 HTTP的定义和历史 在一个网络中。传输数据需要面临三个问题: 1.客

    这里重点说一下Get和Post方法,网上关于Get和Post的区别满天飞。但很多没有说到点子上。Get和Post最大的区别就是Post有上面所说的第三部分:内容。而Get不存在这个内容。因此就像Get和Post其名称所示那样,Get用于从服务器上取内容,虽然可以通过QueryString向服务器发信息,但这违背了Get的本意,QueryString中的信息在HTTP看来仅仅是获取所取得内容的一个参数而已。而Post是由客户端向服务器端发送内容的方式。因此具有请求的第三部分:内容。

HTTP响应(HTTP Response)

       当Web服务器收到HTTP请求后,会根据请求的信息做某些处理(这些处理可能仅仅是静态的返回页,或是包含Asp.net,PHP,Jsp等语言进行处理后返回),相应的返回一个HTTP响应。HTTP响应在结构上很类似于HTTP请求,也是由三部分组成,分别为:

    1.状态行

    2.HTTP头

    3.返回内容

    首先来看状态行,一个典型的HTTP状态如下:

HTTP/1.1 200 OK

    第一部分是HTTP版本,第二部分是响应状态码,第三部分是状态码的描述,因此也可以把第二和第三部分看成一个部分。

    对于HTTP版本没有什么好说的,而状态码值得说一下,网上对于每个具体的HTTP状态码所代表的含义都有解释,这里我说一下分类。

  • 信息类 (100-199)

  • 响应成功 (200-299)

  • 重定向类 (300-399)

  • 客户端错误类 (400-499)

  • 服务端错误类 (500-599)

    HTTP响应中包含的头包括1.响应头(response header) 2.普通头(general header) 3.实体头(entity header)。

    第三部分HTTP响应内容就是HTTP请求所请求的信息。这个信息可以是一个HTML,也可以是一个图片。比如我访问百度,HTTP Response如图 5 所示。

   

5

    图5.一个典型的HTTP响应

   图 5 中的响应是一个HTML,当然还可以是其它类型,比如图片,如图 6 所示。

   

6

    图6.HTTP响应内容是图片

    这里会有一个疑问,既然HTTP响应的内容不仅仅是HTML,还可以是其它类型,那么浏览器如何正确对接收到的信息进行处理?

    这是通过媒体类型确定的(Media Type),具体来说对应Content-Type这个HTTP头,比如图 5 中是text/html,图 6 是image/jpeg。

    媒体类型的格式为:大类/小类  比如图 5 中的html是小类,而text是大类。

    IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)定义了 8 个大类的媒体类型,分别是:

  • application— (比如: application/vnd.ms-excel.)

  • audio (比如: audio/mpeg.)

  • image (比如: image/png.)

  • message (比如,:message/http.)

  • model(比如:model/vrml.)

  • multipart (比如:multipart/form-data.)

  • text(比如:text/html.)

  • video(比如:video/quicktime.)

HTTP头

    HTTP头仅仅是一个标签而已,比如我在Aspx中加入代码:

Response.AddHeader("测试头","测试值");

    对应的我们可以在fiddler抓到的信息如图 7 所示。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读