一封供程序员参考的http学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一封供程序员参考的http学习笔记相关的知识,希望对你有一定的参考价值。


一封供程序员参考的http学习笔记_网络

文章目录

  • ​​CDN有什么好处​​
  • ​​什么是代理​​
  • ​​浏览器HTTP请求过程​​
  • ​​在HTTP中安全和幂等是什么意思​​
  • ​​HTTP方法清单​​
  • ​​状态码的含义​​
  • ​​3xx​​
  • ​​5xx​​
  • ​​HTTP的优缺点​​
  • ​​HTTP头字段​​
  • ​​内容协商的质量值​​
  • ​​HTTP连接管理​​
  • ​​HTTP的重定向和跳转​​
  • ​​HTTPS和HTTP的区别​​

CDN有什么好处

CDN可以缓存源站的数据,让浏览器的请求不用到达源站服务器,在半路上就能获得响应,这样能够大幅度缩短响应时间。

什么是代理

代理(Proxy)是HTTP协议中请求方和应答方中间的一个环节,作为“中转站”,既可以转发客户端的请求,也可以转发服务器的应答。

常见的代理有:

  • 匿名代理:完全“隐匿”了被代理的机器,外界看到的只是代理服务器
  • 透明代理:在传输过程中是透明开放的,外界既知道代理,也知道客户端
  • 正向代理:代表客户端向服务器发送请求
  • 反向代理:代表服务器响应客户端的请求

代理可以做很多事情,比如:

  • 负载均衡:把访问请求均匀分散到多台机器,实现访问集群化
  • 内容缓存:暂存上下行的数据,减轻后端的压力
  • 安全防护:隐匿IP,保护被代理的机器
  • 数据处理:提供压缩、加密等额外的功能

浏览器HTTP请求过程

  1. 浏览器从地址栏的输入中获得服务器的IP地址和端口号
  2. 浏览器用TCP的三次握手与服务器建立连接
  3. 浏览器向服务器发送拼好的报文
  4. 服务器收到报文后处理请求,同好拼好报文在发给浏览器
  5. 浏览器解析报文,渲染输出页面

在HTTP中安全和幂等是什么意思

  • 安全:指请求方法不会“破坏”服务器上的资源
  • 幂等:多次执行相同的操作,结果也都是相同的

HTTP方法清单

  • GET:获取资源,可以理解为读取或者下载数据
  • HEAD:获取资源的元信息
  • POST:向资源提交数据,相当于写入或上传数据
  • PUT:类似POST
  • DELETE:删除资源
  • OPTIONS:列出可对资源实行的方法
  • TRACE:追踪请求(即响应的传输路径)
  • CONNECT:建立特殊的连接隧道

状态码的含义

  • 1xx:提示信息,表示目前是协议处理的中间状态,还需要后续的操作
  • 2xx:成功,报文已经收到并且被正确处理
  • 3xx:重定向,资源位置发生变动,需要客户端重新发送请求
  • 4xx:客户端错误,请求报文有误,服务器无法处理
  • 5xx:服务器错误,服务器在处理请求时内部发生了错误

3xx

  • 301:表示永久重定向(http升级称为https,需要永久定向过去)
  • 302:临时重定向(系统维护,暂时不可用)
  • 304:使用缓存(缓存重定向)

5xx

  • 502:访问后端服务器的时候发生了错误

HTTP的优缺点

优点

  • 简单、灵活、易于扩展
  • 应用广泛
  • 无状态,可以轻松实现集群化

缺点

  • 明文传输,安全性不高
  • 性能一般

HTTP头字段

  • text:文本格式的可读数据
  • text/html:超文本文档
  • text/plain:纯文本
  • text/css:样式表
  • image:图像文件
  • image/gif
  • image/jpeg
  • image/png
  • audio/video:音频和视频数据
  • audio/mpeg
  • video/mp4
  • application:数据格式
  • application/json
  • application/javascript
  • application/pdf
  • accept:接受的类型
  • content-type:实体数据的真实类型
  • Transfer- Encoding:chunked(分块传输)

内容协商的质量值

权重的最大值是1,最小值是0.01,默认值是1,如果值是0表示拒绝。

具体的形式是在数据类型或语言代码后面加一个;,然后是“q=value”

Accept:text/html,application/xml;q=0.9,*/*;q=0.8

它表示浏览器最希望使用的是 HTML 文件,权重是 1,其次是 XML 文件,权重是 0.9,最后是任意数据类型,权重是 0.8。服务器收到请求头后,就会计算权重,再根据自己的实际情况优先输出 HTML 或者 XML

HTTP连接管理

HTTP默认采用长连接,响应数据会自动加上

Conntection:keep-alive

客户端可以使用​​Connection:close​​字段告诉服务器:这次通信后就关闭连接

HTTP的重定向和跳转

浏览器收到301/302报文,会检查响应头里有没有​​Location​​。如果有,就会从字段里提取出URI,发送新的HTTP请求,相当于帮助我们点击了这个连接。

HTTPS和HTTP的区别

  • HTTPS默认端口:443 ,HTTP默认端口:80
  • HTTPS是加密传输的,HTTP是明文传输的


以上是关于一封供程序员参考的http学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

HTTP请求头(Header)参数

nginx媒体压缩

前端vue如何找到默认的头里的返回按钮的事件

PHP学习笔记---封装(面向对象三大特性之一)

AngularJS学习笔记之directive——scope选项与绑定策略

tomcat web 学习笔记