首页 > 编程语言 >一封供程序员参考的http学习笔记

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

时间:2022-10-30 10:34:39浏览次数:56  
标签:HTTP 请求 报文 代理 笔记 程序员 服务器 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,浏览器
From: https://blog.51cto.com/u_15365254/5807343

相关文章

  • 第六章学习笔记
    一、梗概本章讲述了信号和信号处理;介绍了信号和中断的统一处理,有助于从正确的角度看待信号;将信号视为进程中断,将进程从正常执行转移到信信号处理;解释了信号的来源,包括......
  • logback笔记
    概述配置错误日志发送到指定邮箱<appendername="EMAIL"class="com.ppdai.logclient.logback.MailAppender"><evaluatorclass="com.ppdai.logback.SMTPFrequencyE......
  • 《程序员修炼之道:从小工到专家》读后感4
    本次我学习了第一章第三节和第四节。第三节讲的是石头汤与煮青蛙。石头汤主要讲了一帮士兵通过技巧将一帮村民团结起来,得到了一锅丰盛的汤。这个故事可以从两个视......
  • 第三十一章 使用 CSP 进行基于标签的开发 - 转义和引用HTTP输出
    第三十一章使用CSP进行基于标签的开发-转义和引用HTTP输出转义和引用HTTP输出要创建HTML中使用的特殊字符的文字显示,必须使用转义序列。例如,要在HTML中显示>(右尖......
  • http
    什么是HTTP首先http是超文本传输协议,用来简历网络连接传递信息的HTTP与HTTPS的区别https与http的区别是,首先http是明文传输的不安全的,http使用了ssl/tcl进行安全加密,htt......
  • C++ Primer Plus学习笔记之复合类型(上)
    前言个人觉得学习编程最有效的方法是阅读专业的书籍,通过阅读专业书籍可以构建更加系统化的知识体系。一直以来都很想深入学习一下C++,将其作为自己的主力开发语言。现在为......
  • Http和Https
    Http和Https首先我们介绍一下http和https,http是超文本传输协议,无状态并且是明文传输。https是在http协议的基础上增加了SSL/TLS协议,设备之间的通信是加密的,比Http协议安......
  • 一个http server 的npm包 budo 实时
    ​​https://www.npmjs.com/package/budo​​使用:budo--dir./......
  • 【笔记07】Javascript - 基本概念 - (作用域)
    【笔记07】Javascript-基本概念-(作用域)functiontest(){}通常,我们把函数生成的空间叫做“作用域”,但这么说不精准。作用域属于函数,函数产生了作用域。一切为对象的东西,......
  • 2022.10.29论文学习笔记
    本周看了一篇论文,论文的题目为:TowardsBetterNon-TreeArgumentMining:Proposition-LevelBiaffifineParsingwithTask-SpecifificParameterization,即走向更好的非树......