「掘金日新计划 · 8 月更文挑战」的第16天—玩转Http基础协议和解析

58 阅读5分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情

image.png

1.B/S架构和C/S架构

  • C/S架构(客户机-服务器)
    缺少通⽤性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度

image.png

  • B/S架构(浏览器和服务器架构)
    是WEB兴起后的⼀种⽹络架构模式 WEB浏览器是客户端最主要的应⽤软件 统⼀了客户端,将系统功能实现的核⼼部分集中到服务器上,简化了系统的开发、维护和使⽤ image.png

  • URL(统⼀资源定位符,获取服务器资源的⼀种)
    标准格式: 协议://服务器IP:端⼝/路径1/路径N ? key1=value1 & key2=value2
    协议:不同的协议有不同的解析⽅式
    服务器ip: ⽹络中存在⽆数的主机,要访问的哪⼀台, 通过公⽹ip区分
    端⼝: ⼀台主机上运⾏着很多的进程,为了区分不同进程,⼀个端⼝对应⼀个进程,http默认的端⼝是80
    路径: 资源N多种,为了更进⼀步区分资源所在的路径(后端接⼝,⼀般称为 “接⼝路径”,“接⼝”)

2.HyperText Transfer Protocol 超⽂本传输协议

  • 协议定义
    协议是⼀种约定,规定好⼀种信息的格式,如果发送⽅按照这种请求格式发送信息,那么接收端就要按照这样的格式解析数据,这就是协议。

  • 多种协议

(1) json协议\

{
    “name”:"miaozai",
    "age":18
}

(2)xml协议\

<user>
        <name> miaozai </name>
        <age> 18 </age>
</user>

(3)http超⽂本传输协议
1)即超⽂本传送协议(Hypertext Transfer Protocol ),是Web联⽹的基础,也是⼿机PC联⽹常⽤的协议之⼀,HTTP协议是建⽴在TCP协议之上的⼀种应⽤。

2)HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,从建⽴连接到关闭连接的过程称为“⼀次连接”。

3)响应码:
1xx:信息
2xx:成功 200 OK,请求正常
3xx:重定向
4xx:客户端错误 404 Not Found 服务器⽆法找到被请求的⻚⾯
5xx:服务器错误 503 Service Unavailable,服务器挂了或者不可⽤

4)和https的关系
(1)主要由两部分组成:HTTP + SSL / TLS。
(2)⽐ HTTP 协议安全,可防⽌数据在传输过程中不被窃取、改变,确保数据的完整性,增加破解成本。
(3)缺点:相同⽹络环境下,HTTPS 协议会使⻚⾯的加载时间延⻓近 50%,增加额外的计算资源消耗,增加 10%到 20%的耗电等;不过利⼤于弊,所以Https是趋势,相关资源损耗也在持续下降。
(4)如果做软件压测:直接压测内⽹ip,通过压测公⽹域名,不管是http还是https,都会带来额外的损耗导致结果不准确

3.超⽂本传输协议Http消息体拆分

1)Http请求消息结构

  • 请求⾏:请求⽅法 URL地址 协议名
  • 请求头:报⽂头包含若⼲个属性 格式为“属性名:属性值”\服务端据此获取客户端的基本信息。
  • 请求体:请求的参数,可以是json对象,也可以是前端表单⽣成的key=value&key=value的字符串

2)Http响应消息结构

  • 响应⾏:报⽂协议及版本、状态码
  • 响应头:报⽂头包含若⼲个属性 格式为“属性名:属性值”
  • 响应正⽂:响应报⽂体,我们需要的内容,多种形式⽐如html、json、图⽚、视频⽂件等

4.HTTP的九种请求⽅法

(1)http1.0定义了三种:

  • GET: 向服务器获取资源,⽐如常⻅的查询请求
  • POST: 向服务器提交数据⽽发送的请求
  • Head: 和get类似,返回的响应中没有具体的内容,⽤于获取报头

(2)http1.1定义了六种

  • PUT:⼀般是⽤于更新请求,⽐如更新个⼈信息、商品信息全量更新
  • PATCH:PUT ⽅法的补充,更新指定资源的部分数据
  • DELETE:⽤于删除指定的资源
  • OPTIONS: 获取服务器⽀持的HTTP请求⽅法,服务器性能、跨域检查等
  • CONNECT: ⽅法的作⽤就是把服务器作为跳板,让服务器代替⽤户去访问其它⽹⻚,之后把数据原原本本的返回给⽤户,⽹⻚开发基本不⽤这个⽅法,如果是http代理就会使⽤这个让服务器代理⽤户去访问其他⽹⻚,类似中介
  • TRACE:回显服务器收到的请求,主要⽤于测试或诊断

5.Http常⻅请求/响应头content-type内容类型

(1) Content-type: ⽤来指定不同格式的请求响应信息,俗称 MIME媒体类型 (2)常⻅的取值

  • text/html :HTML格式 text/plain :纯⽂本格式\
  • text/xml : XML格式
  • image/gif :gif图⽚格式 image/jpeg :jpg图⽚格式 image/png:png图⽚格式
  • application/json:JSON数据格式 application/pdf :pdf格式 application/octet-stream :⼆进制流数据,⼀般是⽂件下载
  • application/x-www-form-urlencoded:form表单默认的提交数据的格式,会编码成key=value格式
  • multipart/form-data: 表单中需要上传⽂件的⽂件格式类型