http协议原理

1.1 HTTP协议的发展历史

a. http/0.9 

i.只有一个命令GET,

ii.没有HEADER等描述数据的信息,

iii.服务器发送完毕,就关闭TCP连接

(TCP连接跟Http请求是两个概念,一个TCP连接里面可以发送很多个HTTP请求。以前的协议版本不能这么做,但是现在1.1可以,2版本做了更大的优化)

b. http/1.0 

i.增加了很多命令,比如POST,PUT等,

ii.增加了status code和header的内容,

iii.多字符集支持,多部分发送,权限,缓存等

c. http/1.1   

i.持久连接。在1.0版本中,发送一次http请求就要建立一次TCP连接,服务端返回后便会关闭

ii.pipeline。可以在同一个连接里面发送多个请求(同时只能存在一个http请求)。但在服务端还是要按照顺序一个进行返回。假如两个请求,第一个处理得较慢,第二个请求已经处理完成了,但还是要等第一个请求返回完之后再返回第二个请求

iii.增加了一些头信息和其他一些命令,其中比较重要的就是host,它的出现可以让同一个物理服务器跑多个web服务

d. http2

i.所有数据以二进制传输(1.X里面是通过字符串)

ii.同一个连接里面发送多个请求不再需要按照顺序来

iii.头信息压缩以及推送等提高效率的功能

(这里的推送是指配合一个请求推送另外的请求,但在没有请求的情况下不能主动推送。和websocket的主动推送不同)

e.https 是指安全版本的http,跟http1.1的使用没有多大差别

 

1.2.HTTP的三次握手

 

http只有请求和接收的概念,而连接是指TCP连接。

三次握手:客户端发送一个我要【创建连接】的数据包,服务端收到请求后返回,客户端再次发送一次请求。这样经过三次握手 后,会创建一个TCP连接,这样做的目的,是为了防止服务端过多开启无用的TCP连接。

 

1.3.URI,URL和URN

URI是指 统一资源标志符 Uniform Resource Identifier,用来唯一标识互联网上的信息资源,包括了URL和URN

URL是指 统一资源定位器 Uniform Resource Locator,  用来找到这个资源所在的位置,并且去访问它得到它

URN 是指 永久统一资源定位器 Uniform Resource Name, 如果资源搬了一个位置,url不会告诉你搬了个位置,只会返回404

目的是为了在资源移动后还能被找到,目前还没有非常成熟的方案

1.4 HTTP报文格式

 

请求首行:包含methods,路由,协议的实现

响应首行:协议的实现,code,ok明文含义

header部分等后期详细补充

(格式:首行的参数通过空格来分隔,换行则说明 下面的是header部分,header空一行再换行,就是到了body主体部分)

转载于:https://www.cnblogs.com/wuyijuan/p/11426621.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值