TCP/IP典型协议之HTTP协议

HTTP协议:

HTTP协议是应用层的知名协议,应用层主要负责的是应用程序之间的沟通;
HTTP协议又名超文本传输协议
HTTP协议格式:

首行:
请求首行:请求方法 URL 协议版本
响应首行:协议版本 响应状态码 状态码描述
头部:由一个个的key: val形式的键值对组成,每个键值对以\r\n作为间隔,主要描述的是本次请求或者响应的重要信息
空行:\r\n
正文:数据

1.请求方法:GET/HEAD/PUT/POST/DELETE/PATCH/CONNECT…
GET:请求指定的页面信息
HEAD:类似于GET,只不过请求的响应中没有正文,只有头部
POST:提交数据,数据放到正文中提交
PUT:从客户端向服务端传送的数据取代指定文档的内容
DELETE:请求服务器删除指定的页面
PATCH:对PUT方法的补充,用来对已知资源进行局部更新
CONNECT:HTTP/1.1中的,能够将连接改为管道的代理服务器

GET与POST的区别:GET主要用于获取资源,也可以提交数据,但是GET提交数据会将数据放到查询字符串中进行提交,不安全,并且URL是有长度限制的,POST主要向服务器提交数据,并且将数据放到正文中,而且比较安全。

2.响应状态码:1xx/2xx/3xx/4xx/5xx
1xx:表示服务器返回的信息
2xx:表示成功
3xx:表示重定向
4xx:表示客户端错误
5xx:表示服务端错误

典型状态码:100 继续/200 成功/202 接收请求但是处理未完成/301 永久重定向/302 临时重定向/400 客户端语法错误/404 服务器没有根据客户端找到资源/500 服务器内部错误/502 服务器无效响应

3.头部:"key= val"的键值对,描述了一些关键的信息

Content-Length:数据长度
Content-Type:数据类型
Connection:本次请求是否长连接
User-Agent:客户端的描述信息
Accept/Refer
响应头部:
Transfer-Encoding:传输编码
Location:搭配3xx状态码使用,告诉对方资源重定向的新位置–说白了就是让客户端请求新的位置
Cookie/Set-Cookie:在客户端登录成功,服务端会为客户端创建一个会话,会话中保存的是服务端对客户端的认证信息,在登录成功的时候服务端使用Set-Cookie给客户端响应一个会话id,客户端收到这个响应,将Cookie中的数据保存起来,下次访问的时候,就会自动将保存的Cookie信息,取出来,发送给服务器,服务器收到Cookie后,取出会话id,通过这个id查找到会话信息,就可以知道这个客户端是谁了。

断点续传的原理:客户端记录自己的文件下载位置,若下载中断,下次下载的时候发送下载数据的时候,告诉服务器这次下载那个文件,从哪里开始下载,下载多少数据;
HTTP协议中断点续传涉及到几个头部信息:
下载响应的头部:
Accept-Ranges:服务器个告诉客户端自己支持资源传输范围的定义–告诉客户端自己支持断点续传;
Accept-Ranges:bytes
Content-Range:bytes 200-1000/*
ETag:用于向客户端发送一个文件唯一性的信息;若客户端断点续传,需要将这个信息重新传递回来,判断文件是否改变,然后决定是完整的重新下载,还是继续断点续传
请求头部:
Range:客户端告诉服务器自己想要的资源的范围
Range:bytes = 200-1000 想要文件第200到第1000字节的数据/ bytes = 200- 想要文件从第200字节开始到结束
服务端收到Range,解析得到数据从第200字节开始,长度801字节,则打开文件跳转读写位置到200,然后读取801字节数据响应;
文件资源的部分响应状态码是206而不是200;200是完整下载的意思
断点续传有一个关键信息:服务器上的文件没有修改过

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值