【Android进阶】HTTP协议原理、交互流程、身份认证、Web攻防技

| Accept | 指明请求端可以接受处理的媒体类型 |
| Accept-Charset | 指明请求端可以接受的字符集 |
| Accept-Encoding | 指明请求端可以接受的编码格式 |
| Authorization | 授权 |
| Expect | 允许客户端列出某请求所要求的服务器行为 |
| From | 提供了客户端用户的E-mail地址 |
| Host | 指明请求端的网络主机和端口号 |
| If-Match | 服务端在响应头部里面返回ETag信息,客户端请求时在头部添加If-Match(值为响应的ETag),服务端接收后判断ETag是否相同,若相同则处理请求,否则不处理请求。 |
| If-Modified-Since | 客户端在请求某一资源文件时,在头部加上If-Modified-Since(值为该资源文件的最后修改时间),服务端接收后将客户端上报的修改时间与服务器存储的文件的最后修改时间做对比,如果相同,说明资源文件没有更新,返回304状态码,告诉客户端使用原来的缓存文件。否则返回资源内容。 |
| If-None-Match | 服务端在响应头部里面返回ETag信息,客户端请求时在头部添加If-None-Match(值为响应的ETag),服务端接收后判断ETag是否相同,若相同,说明资源没有更新,返回304状态码,告诉客户端使用原来的缓存文件。否则返回资源内容。 |
| If-Range | 该头域与Range头域一起使用,服务端在响应头部里面返回ETag信息,客户端请求时在头部添加If-Range(值为响应的ETag),服务端接收后判断ETag是否相同,若相同,则返回状态码206,返回内容为Range指定的字节范围。若不相同,则返回状态码200,返回内容为整个实体。 |
| If-Unmodified-Since | 客户端在请求某一资源文件时,在头部加上If-Modified-Since(值为该资源文件的最后修改时间),端接收后将客户端上报的修改时间与服务器存储的文件的最后修改时间做对比,如果相同,则返回资源内容,如果不相同则返回状态码412。 |
| Max-Forwards | 配合TRACE、OPTIONS方法使用,限制在通往服务器的路径上的代理或网关的数量。 |
| Proxy-Authorization | 代理授权 |
| Range | 表示客户端向服务端请求指定范围的字节数量:Range:bytes=0-500表示请求第1个到第501个的字节数量。Range:bytes=100-表示请求第101到文件倒数第一个字节的字节数量。Range:bytes=-500表示请求最后500个字节的数量。Range可以同时指定多组(Range:bytes=500-600,601-999)。并不是所有的服务端都支持字节范围请求的,如果支持字节范围请求,服务端会返回状态码206,若不支持则会返回200,客户端需要根据状态码来判断服务端是否支持字节范围操作。此域可用于断点下载,即在断点处请求后面的内容,也可用于多线程下载同一个文件,每个线程负责一个文件的一部分下载工作,多个线程协同完成整个文件的下载。 |
| Referer | 用于指定客户端请求的来源,是从搜索引擎过来的?还是从其它网站链接过来的?服务器根据此域,有时可以用做防盗链处理,不在指定范围内的来源,统统拒绝。 |
| TE | 指明客户端可以接受哪些传输编码。 |

实体头域

实体头域名称作用描述
Allow指明被请求的资源所支持的方法,如GET、HEAD、PUT
Content-Encoding指明实体内容所采用的编码方式
Content-Language指明实体内容使用的语言
Content-Length指明请求实体的字节数量
Content-Location可以用来为实体提供对应资源的位置
Content-MD5指定实体内容的MD5,用于内容的完整性校验(base64的128位MD5)
Content-Range
Content-Type指定实体的媒体类型
Expires指明实体的过期时间
Last-Modified指明实体最后被修改的时间
HTTP响应协议详解

HTTP1.1的响应协议报文结构,大体上可以分为三块,即状态行、头部、消息主体。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

状态行

状态行包含HTTP协议版本、状态码、原因短语三个内容,它们之间以空格间隔,并以回车+换行结束。

状态码由三位数字组成,第一位数字定义了响应类型,主要有如下五种类型的状态码

状态码类型作用描述
1xx报告(请求被接收,继续处理)
2xx成功(请求被成功的接收并处理)
3xx重发
4xx客户端出错(客户端错误的协议格式和不能处理的请求)
5xx服务器出错(服务器无法完成有效的请求处理)

状态码和对应的原因短语详细描述

状态码原因短语中文描述
100Continue继续
101Switching Protocols切换协议
200OK成功
201Created已创建
202Accepted接受
203Non-Authoritative information非权威信息
204No Content无内容
205Reset Content重置内容
206Partial Content部分内容
300Multiple Choices多个选择
301Moved Permanently永久移动
302Found发现
303See Other见其它
304Not Modified没有改变
305Use Proxy使用代理
307Temporary Redirect临时重发
400Bad Request坏请求
401Unauthorized未授权的
402Payment Required必需的支付
403Forbidden禁用
404Not Found没有找到
405Method Not Allowed方法不被允许
406Not Acceptable不可接受的
407Proxy Authentication Required需要代理验证
408Request Timeout请求超时
409Confilict冲突
410Gone不存在
411Length Required长度必需
412Precondition Failed先决条件失败
413Request Entity Too Large请求实体太大
414Request-URI Too Long请求URI太长
415Unsupported Media Type不支持的媒体类型
416Requested Range Not Satisfiable请求范围不被满足
417Expectation Failed期望失败
500Internal Server Error内部服务器错误
501Not Implemented服务端没有实现
502Bad Gateway坏网关
503Service Unavailable服务不能获得
504Gateway Timeout网关超时
505HTTP Version Not SupportedHTTP协议版本不支持

响应头域

响应头域名称作用描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

总结

最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

相信它会给大家带来很多收获:

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

nux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值