http协议相关内容

​ 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.键值对:大量的属性名和属性值组合,可以在服务器响应的时候自定义。

  1. Content-Type:响应体中的数据格式,常见格式如下

  2. text/plain: 普通的纯文本,浏览器通常会将响应体原封不动的显示到页面上

  3. text/html:html文档,浏览器通常会将响应体作为页面进行渲染

  4. text/javascript:js代码,浏览器通常会使用JS执行引擎将它解析执行

  5. text/css:css代码,浏览器会将它视为样式

  6. image/jpeg:浏览器会将它视为jpg图片

  7. attachment:附件,浏览器看到这个类型,通常会触发下载功能

  8. 其他MIME类型

  9. Server:web服务器类型

响应体

响应消息的正文

3.在浏览器地址栏中输入一个页面地址,按下回车发生了什么?

1.浏览器将url地址补充完整:没有书写协议,添上协议;

2.浏览器对url地址进行url编码:如果url地址中出现非ASCII字符,则浏览器会对其进行编码;

最后

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

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

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

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
id开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值