3.其他键值对;
请求头描述了请求的元数据信息,这里的元数据的信息是指与业务无关的额外信息;当在浏览器地址栏中输入url
地址按下回车,浏览器会自动构建请求头,请求方法为GET
,然后向服务器发送请求;
请求体
包含业务数据的字符串;
理论上可以是任意格式的字符串,习惯上,服务器普遍能识别的格式为:
1.application/x-www-form-urlencoded
: 属性名=属性值&属性名=属性值...
2.application/json
: {"属性名":"属性值","属性名":"属性值"}
3.multipart/form-data
: 使用某个随机字符串作为属性之间的分隔符,通常用于文件上传;
由于请求体格式多样性,服务器在解析请求体时可能无法知晓具体格式,从而不知道如何解析请求体,因此,服务器往往要求请求头中附带一个属性Content-Type
来描述请求体的使用格式;
Content-Type:application/x-www-form-urlencoded
Content-Type:application/json
Content-Type:multipart/form-data
GET和POST
虽然http协议没有规定请求方式必须是什么,但随意的请求方法,服务器可能无法识别;
服务器一般能识别GET和POST等方式,但是有差异化处理
1.GET请求一般没有请求体,POST请求有;
2.GET请求的业务数据放在地址中,安全性较差;
3.GET请求传递的业务数据量有限,POST是无限的(除非服务器限制);
4.GET请求有利于分享页面结果,POST不行;
5.在浏览器中刷新或者回退页面时,会按照该页面之前的请求方式重新发送请求,如果是GET请求,浏览器会重新发送GET请求,如果是POST请求,浏览器会重新构建之前的消息体数据,通常会弹出提示;
2.响应消息格式
和请求类似,响应消息分为响应头(response header)和响应体(response body)
响应头
比如我们请求 http://www.baidu.com/s?wd=html, 得到的响应头可能如下:
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Server: BWS/1.1
…
可以看出,该字符串有两个部分组成
1.响应行:协议 + 状态码 + 状态文本
1.协议:协议以及版本号,目前固定为HTTP/1.1
2.状态码和状态文本:一个数字和数字对应的单词,来描述服务器的响应状态,浏览器会根据该状 态做不同的处理;
1.200 OK : 一切正常 你好,我好,大家好;
2.301 Moced Permanently: 资源已被永久重定向,你的请求我收到了,但是你要的东西不 在这个地址,我已经把它移动到一个新的地址,麻烦你去请求新的地址,地址我放在请求 头的Location中了;
3.302 Found :资源已被临时重定向,你的请求我收到了,但是你要的东西不 在这个地址,我已经把它移动到一个新的地址,麻烦你去请求新的地址,地址我放在请求 头的Location中了;
4.304 Not Modified: 文档内容未被修改, 服务器返回此状态码时,不会返回任何资源。 客户端通常会缓存访问过的资源;
5.400 Bad Request :语义有误,当前请求无法被服务器理解;
6.403 Forbidden: 资源不存在,请求已收到,找不到你需要的东西;
7.404 Not Found: 资源不存在;
8.500 Internal Server Error : 服务器内部错误,无法完成请求;
2.键值对:大量的属性名和属性值组合,可以在服务器响应的时候自定义。
-
Content-Type:响应体中的数据格式,常见格式如下
-
text/plain: 普通的纯文本,浏览器通常会将响应体原封不动的显示到页面上
-
text/html:html文档,浏览器通常会将响应体作为页面进行渲染
-
text/javascript:js代码,浏览器通常会使用JS执行引擎将它解析执行
-
text/css:css代码,浏览器会将它视为样式
-
image/jpeg:浏览器会将它视为jpg图片
-
attachment:附件,浏览器看到这个类型,通常会触发下载功能
-
其他MIME类型
-
Server:web服务器类型
响应体
响应消息的正文
3.在浏览器地址栏中输入一个页面地址,按下回车发生了什么?
1.浏览器将url地址补充完整:没有书写协议,添上协议;
2.浏览器对url地址进行url编码:如果url地址中出现非ASCII字符,则浏览器会对其进行编码;
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
id开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!