HTTP概述

HTTP干什么用的

如果用一个名词来比喻HTTP,我会用“英语”这个名词。英语是国际语言,也就是在任何场合面对一个陌生人,只要你说句“HELLO”,他就会明白你在和他打招呼,他会回一句“HELLO”。HTTP的用途类似,只不过他用在互联网世界内,两个程序都理解HTTP标准,他们就能沟通,主动沟通的一方就是WEB客户端,另一端就是WEB服务端。

通过HTTP沟通什么

我们通过英语沟通,目的就是描述我们的意愿,比如我想吃冰激凌,做我女朋友等。程序通过HTTP沟通的目的是获取资源,客户端会和服务端说:“把index.html给我”,服务端和客户端说:“index.html的内容是hello world”,这里的index.html就是资源。

啥是资源

资源一般可以表述为word文档,html文件或者图片等静态资源,也可以是根据特定条件变化的动态变化动态资源,比如在浏览器中看到的用户信息页面,会根据登录用户不同显示的页面不同。
这样细细一想资源就很多了,种类也就很多了,有一种情况服务端把资源编码为二进制流传给客户端,那么客户端解码成什么类型呢?服务端会通过报文头中的媒体类型(MIME type)告诉客户端。
客户端类型由对象类型和一个特定类型构成,中间用一个斜杠分隔。如JPEG格式的图片的类型为image/jpeg。

URI

想象一下,客户端怎么服务端沟通呢?大致是这样的:(1)嘿,我想要index.html这个文件(2)然后服务端说:这个文件在在我的根目录(3)最后客户端把文件取过来。
这样也太麻烦了,服务端都要告诉客户端文件在哪里。就此URI(统一资源标识符)诞生了,它用来标识资源的位置,他在一定范围内是唯一的,比如你的局域网内他应该是唯一的。
URI有URL和URN两种形式。URL是我们最常用的,URL(统一资源定位符)标识的资源的位置是固定的,比如我们的index.html位置,如果它在根目录下,我们用其他路径是访问不到的;URN(统一资源名)相反它于位置无关,也就是说我们只通过资源的名字就可以访问的资源,这种方式还没有普及,但是绝对是个很棒东西。

事务

客户端和服务端通信时也是有事务机制的,也就是一个请求和N个返回。就像我们人类沟通时,遇到话少的人,也就是一问一答,遇到碎嘴子就是一问N答。

方法

我们人类通过沟通时的语气来表达情感,http当然也要有他的方式,那就是方法。客户端通过http方法(GET POST HEAD PUT DELETE等)来表达服务端应该用什么样的操作。

状态码

类似人类的表情,不用说话就知道对方想说什么。http用状态码来表示它的心里话,也就是服务端的心里话,用来言简意赅的告诉服务端的处理结果。比如常见的200代表着处理成功,404就是你要的东西我没有。

报文

报文类似我们沟通时说的话,http用它来描述资源,描述信息等。
报文包括三部分:

  • 起始行
  • 首部字段
  • 主体
http的版本
  • HTTP/0.9
    可能有很古老的客户端在用,这个版本有很多缺陷,支持Get方法,在它诞生不久就被HTTP/1.0取代。
  • HTTP/1.0
    这个版本丰富了之前的版本,逐渐向着商业化和学术化转变。
  • HTTP/1.0+
    这个版本在1.0上增加了很多功能比如keep-alive、虚拟机支持等,但是还没有加入到官方的标准中。
  • HTTP/1.1
    这个版本主要是矫正之前的缺陷,明确语义,引入重要的性能优化措施,并删除一些不好的特性。这个是目前使用最广的版本。
  • HTTP-NG(HTTP/2.0)
    这个是1.1的加强版,重点是性能优化和服务逻辑远程执行框架的支持。这个版本在推广中。

先写到这里了,如果有问题请加入qq群630300475,大家一起聊一下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值