网络原理——http

1、HTTP协议

HTTP协议又称为(超文本传输协议),它是指用于WWW服务器传输文本到本地浏览器的传输协议。使得浏览器更加高效工作,并且使网络传输减少。

2、URL

URL(统一资源定位符),也就是我们俗称的“网址”,它是写在浏览器输入地址栏中。只要用于传输数据和建立连接。
URL结构组成

2.1 结构说明

  1. 协议名:主要是约定了服务器和客户端之间通过什么格式进行通信。协议名不仅仅只有http,还有https(更加安全)等协议。

  2. 登录认证:访问该网站的用户名和密码(可存在),但是现在已经没有网站去使用这种方式去登录。

  3. 服务器地址:又是我们常见的位于网络层协议中的IP地址(也就是域名),域名通过DNS机制自动转化成IP地址。将网址设计出域名的样式是为了便于记忆。如下图,为百度的域名以及IP地址
    百度域名及对应的IP

  4. 服务器端口号:用来确定服务器上的一个具体的应用程序,其中http的端口号为80,https的端口号为443。端口号是可以省略不写(省略是因为自动生成了)。

  5. 带层次文件路径:每个路径就是对应服务器上的一个具体资源,路径的改变弹出的页面信息就是不用的。如果没有路径,默认就是根目录。类似于文件目录结构,如下图。
    路径

  6. 查询字符串(query String):使用问号分割路径和查询字符串,问号之后是开始查询字符串,以键值对的方式输出,其中键值对是可以有很多,具体根据程序猿自己开发决定。
    查询字符串

  7. 片段标识符:一般用于在同一个网站内,进行模块之间的跳转,类似于(超链接),或者是word文档中的目录链接跳转。

3、HTTP的协议结构

http中请求和响应的结构,我们结合Fiddle抓包来进行查看——访问csdn

HTTP请求
在这里插入图片描述
由上图总结可以得到http请求的结构

首行:方法 + URL + 版本号

Header:请求的属性,冒号分隔的键值对,每组属性之间使用\n分割。当遇到空行时表示Header部分技术。

Body:空行之后的内容都是Body,Body允许为空字符串,当Header中出现Content-length属性表示Body的长度

HTTP响应
在这里插入图片描述由上图总结可以得到http响应的结构

首行:版本号 + 状态码 + 状态码解释
Header:请求的属性,冒号分隔的键值对,每组属性之间使用\n分割。当遇到空行时表示Header部分技术。
Body:空行之后的内容就是Body,Body允许空字符串,当Header中出现Content-length时,表示Body的长度。其中当Body返回一个HTML代码时,说明这个HTML页面内容就在Body中

4、HTTP的方法

方法名说明支持的HTTP协议脚本
GET获取资源1.0 、1.1
POST传输实体主题1.0 、1.1
PUT传输文件1.0 、1.1
HEAD获取报文首部1.0 、1.1
DELETE删除文件1.0 、1.1

等等还有很多的方法,其中我们最常用的就是GET 和 POST方法

5、HTTP的状态码

类型原因语句
1xx信息性状态码接收的请求正在处理
2xx成功状态码请求正常处理完毕
3xx重定向状态码需要进行附加操作已完成请求
4xx客户端错误状态码服务器无法处理请求
5xx服务器错误状态码服务器处理请求出错

6、HTTP1.0到HTTP1.1到HTTP2.0的升级

6.1 HTTP1.0和HTTP1.1的区别
  1. 长连接:http1.1,默认开启长连接keep-Alive,在一定程度上弥补了HTTP1.0每次请求都需要创建连接的缺点。HTTP1.0需要使用keep-Alive参数来告知服务器来建立长连接。
  2. 缓存处理:在HTTP1.0中使用if_modified_Since,Expires来作为缓存标准。在HTTP1.1中,增加了更多的缓存策略:Entity tag ,if_Match ,if_None_Match,if_Unmodified_Since等
  3. 带宽优化:加入range头,可以请求一部分资源断点续传(201),发送header请求头,如果权限够返回100,否则返回401.
  4. Host头部处理:虚拟机存在共享IP,支持Host头域
6.2 HTTP1.1和HTTP2.0的区别
  1. 多路复用:HTTP2.0使用了多路复用的技术,做到同一个连接做到并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个两量级。
  2. 头部压缩:HTTP1.1不支持header的数据压缩,HTTP2.0采用HPACK算法对header的数据进行压缩,这样数据体积小,传输速度更开
  3. 服务端推送:服务器除了响应初次的服务器请求以外,还额外向客户端推送资源,无需客户端明确请求,这样就省去了重复请求的步骤
  4. 二进制“帧”:HTTP2.0通信的最小单位
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值