-
2021-12-15 16:53:55
1.TCP/IP 分层
分层管理好处:规定好接口协议,那么层次内部设计可以灵活改动。处于应用层之上的应用可以只考虑自己的任务,而不必担心底层传输。
应用层 : 包含FTP,DNS,HTTP
传输层 :包含TCP,UDP协议
网络层 : IP协议(处理数据包,是网络传输的最小单位。
链路层 :硬件部分
每层处理时会进行封装,增加首部信息。
2.状态码:
2XX:成功
请求被正常处理
200 OK
204 No Content (服务器接收请求成功处理,但是没有资源可以返回,所以响应报文中不含实体主体,一般用于客户端往服务端发送信息,而客户端不需要回复新内容)
206 Partial Content (对资源一部分的请求,响应报文中包含Content-Range)
3XX :重定向
表明浏览器需要执行某些特殊处理来正确处理请求
301 Moved Permanently (永久性重定向)
302 Found (临时性重定向)
303 See Other (和302功能相同,但是明确表示客户端应该使用GET方法获取资源)
当遇到301,302,303响应码时,几乎所有浏览器都会把POST 改成GET,并且删除请求报文内的主题,再次自动发送请求。
304 Not Modified (资源已找到,但不符合条件请求。 客户端发送附带条件的请求,服务器允许请求访问资源,但不满足请求的条件,所以返回304,不包含响应主体。 虽然被分在3XX类别里,但和重定向没啥关系。
307 Temporary Redirect (临时重定向)
4XX: 客户端错误
400 Bad Request (请求报文中存在语法错误,需要修改请求内容。
401 Unauthorized (需要认证,未认证或者是认证失败
403 Forbidden (请求被拒绝
404 Not Found (无法找到请求资源
5XX: 服务器错误
500 Internel Server Error (服务器执行请求时发生错误
503 Service Unavailble (服务器繁忙或者停机维护,无法处理请求
3.报文构成:
请求报文构成:
响应报文构成:
通用首部:
1.Cache-Control: 操作缓存的工作机制,
2.Connection : 两个作用, 1. 控制不再转发的首部字段 2.管理持久化连接
3.Date:表明创建HTTP报文的日期和时间
4.Trailer:说明在报文主体后还记录了哪些首部字段。
5.Transfer-Encoding: 规定传输报文主体时采用的编码方式
6.Upgrade: 用于检测HTTP协议及其他协议是否可以使用更高的版本进行通信,它的参数值可以指定一个完全不同的通信协议。
7.Via: 可以追踪客户端与服务器之间的请求和响应报文的传输路径。 报文经过代理或者网关,会在Via中附加该服务器的信息再进行转发。 Via字段可以用来追踪报文转发,还可以避免请求回环。
请求首部
1.Accept: 通知服务器,能够处理的媒体类型及相对优先级,一次可以指定多种。可以使用q来指定权重,0~1,默认为1。
2.Accept-Charset: 通知服务器用户能支持的字符集和相对顺序,一次可以指定多种。q可以指定权重
3.Accept- Encoding: 通知服务器用户代理支持的内容编码及相对优先级,一次可以指定多种。 gzip,compress,deflate,identity,*(通配符)
4.Accept-Language:通知服务器用户能处理的自然语言集及相对优先级。
5.Authorization: 告知服务器用户的认证信息。
6.Expect:客户端用Expect来告知服务器,期望出现的某种特定行为。当服务器无法理解客户端的期望作出回应而发生错误时,会返回417Expectation Failed。
7.From:告知服务器用户的电子邮件地址。
8.Host:告知服务器请求的资源所处的互联网主机名和端口号。 (HTTP1.1规范中唯一一个规定必须包含在请求内的首部字段)
9.If-xxx:条件请求,服务器收到带附加条件的请求,只有符合判断条件时,才会执行请求。
10.Proxy-Authorization: 接收到从代理服务器发来的认证质询时,客户端会发送包含Proxy-Authorization 的请求来告知服务器认证所需要的信息。类似于客户端与服务器之间的HTTP访问认证,不过是发生于客户端和代理之间。
11.Range:对于只需要获取部分资源的范围请求,可以用Range指定资源范围。成功返回指定部分资源是206 Partial Content,如果无法处理范围请求,会返回200 OK和全部资源
12.Referer: 告知服务器请求的原始资源路径。
13.User-Agent:告知服务器创建请求的浏览器和客户端等信息。
响应首部:
1.Accept-Ranges: 告知客户端是否能处理范围请求,来指定获取服务器端某个部分的资源。 可处理范围请求时值为bytes,不能处理时值是none
2.Age:告知客户端 源服务器在多久前创建了响应,单位是秒。(因为可能是缓存。 代理创建响应时必须带Age字段。
3.ETag:告知客户端实体标识,可将资源以字符串形式做唯一性标识的方式,当资源更新时,ETag也会更新。每份资源都有自己的ETag。
ETag 分为 强ETag(不论实体发生多细微的变化都会改变值)和 弱ETag(只用于区分资源是否相同,只有资源根本改变才会改变弱ETag值)
4.Location:可以将响应接收方引导到某个与请求URL位置不同的资源上去。会配合重定向使用。
5.Proxy-Authenticate: 把由代理服务器要求的认证信息发送给客户端。
6.Retry-After:告知客户端应在多久后再次发生请求。配合503 Service Unavailable 使用,或者3XX Redirect使用。
7.Server: 告知客户端当前服务器上的HTTP服务器应用程序的信息。
实体首部:
1.Allow:通知客户端能支持的所有HTTP方法,
2.Content-Encoding:实体主体部分选用的内容编码方式。 gzip,compress,deflate,identity
3.Content-Language: 实体主体使用的自然语言
4.Content-Length:实体主体部分的大小,如果对实体主体进行内容编码传输后,就不用Content-Length了。
5.Content-Location:表示报文主题返回资源对应的地址。
6.Content-MD5: 一串由MD5算法生成的值,目的在于检查报文主体在传输过程中是否保持完整,以及确认传输到达。 客户端会对接收的报文主体进行相同的MD5算法然后与首部字段比较。
7.Content-Range:针对范围请求,返回此字段告诉客户端实体中那个部分符合范围请求。
8.Content-Type:实体主体内对象的媒体类型。
9.Expires:资源失效时间。
10.Last-Modified:资源最后一次被修改的时间。
更多相关内容 -
HTTP学习笔记
2015-07-01 18:22:57HTTP学习笔记,主要有协议的基础和一些自己觉得应该要注意的地方 -
记笔记网站源码
2018-02-21 18:20:10web课程作业 Noting.zip中是项目的源代码,IntelliJ IDEA打开后在命令行输入php artisan serve可以启动项目,之后在浏览器中输入http://127.0.0.1:8000可以进入登陆页面 管理员的初始账号密码为admin,admin -
systemverilog牛人学习笔记
2019-01-04 16:33:23关于systemverilog的学习笔记,适合初学者参考,sv入门 -
java笔记 java笔记 java笔记
2022-03-15 18:01:31http://www.dcsdn.com/doc/do-7751 -
javaweb详细笔记,绝对详细(内含代码)
2018-12-12 22:00:59Http协议和Tomcat服务器 36 JavaWeb核心之Servlet 41 HttpServletResponse 46 HttpServletRequest 51 会话技术Cookie&Session; 55 动态页面技术(JSP/EL/JSTL) 59 javaEE的开发模式 65 事务(JDBC) 67 Json数据... -
开源网络云笔记系统 Paperwork.zip
2019-07-19 03:08:22Paperwork 是一个开源网络云笔记系统,是 Evernote、Microsoft OneNote 和 Google Keep 的开源替代品。...后端基于 MySQL 数据库。演示地址:http://demo.paperwork.rocks/ 标签:云笔记 -
http权威指南 读书笔记
2018-05-29 13:44:48http权威指南,相关的读书笔记。http权威指南,相关的读书笔记。 -
可供各学校计算机上机复试及各OJ平台刷题使用算法笔记.rar
2020-01-27 12:43:37算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题... -
RHCE笔记汇总-RHEL7.pdf
2019-09-03 17:09:10本人学习RHCE中所记录的笔记,包含Kickstart、 PXE、 Firewall防火墙、 SELinux、系统权限管理、高级网络设置、Postfix、FTP、HTTP、NFS、SMB、iSCSI、MariaDB、Shell脚本编程、容器和Docker -
传智播客Springmvc+mybatis由浅入深学习笔记
2017-12-12 09:25:03传智播客Springmvc+mybatis由浅入深全套视频学习笔记,与视频配套,分为mybatisDay01、mybatisDay02、springmvcDay01、springmvcDay02。 -
youdao-note-electron:有道云笔记 electron 版,支持 Windows、Linux、Mac 平台。在网页版基础上,进行界面...
2021-05-23 16:18:06不知从什么时候开始,我使用 Windows 有道云笔记同步笔记内容的时候,经常出现下面这种情况: 同步失败,换了别的电脑/重装软件也是不行,偶然间发现网页版的有道云笔记可以正常同步,于是就打算使用 electron 包装... -
QT笔记大神编写值得下载加油
2019-03-16 10:10:09非常实用的QT笔记,从事多年的大神做的笔记 ,大家可以自行下载查阅,希望有所收获! -
.Net开源云端个人笔记系统.zip
2019-07-18 06:10:57以及清空回收站功能新增客户端自动更新功能新增多语言支持:目前支持英语(美国)和中文(中国)两种语言新增客户端设置对话框(目前仅提供界面语言的设置选项)改进了功能性事件触发机制和异常处理修改了N...:http... -
计算机组成原理笔记
2017-09-06 15:30:48软件工程专业计算机组成原理的笔记,可用于考前复习,详细介绍了相关的知识点。 如果需要知识点的思维导图,请访问http://naotu.baidu.com/file/dd0d86e044d557b5558c08ec59730f7a?token=18a996dfae7f2d2f -
scratchpad:记事本可以记下保存在本地存储中的快速笔记
2021-05-01 11:54:51Scratchpad 快速记下笔记。 当您再次访问时便会出现笔记,它们永远不会离开您的浏览器。 如何使用 有一个实时实例。... 转到http://localhost:8080 ,您应该看到该应用程序正在运行! 执照 该项目已获得MIT许可。 -
《图解HTTP》读书笔记
2017-03-28 19:58:242 应用层协议FTP,DNS(提供域名到IP地址之间的解析服务),HTTP3 传输层协议TCP(可靠的字节流服务) UDP4 网络层IP协议也在这一层(利用ARP,完成IP-MAC的解析)。 用来处理在网络上流动的数据包。数据包是网络...第一章
URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置)。
URL是URI的子集。
2 应用层协议
FTP,DNS(提供域名到IP地址之间的解析服务),HTTP
3 传输层协议
TCP(可靠的字节流服务) UDP
4 网络层
IP协议也在这一层(利用ARP,完成IP-MAC的解析)。
用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。网络层的作用是在众多的选项内选择一条传输路线。5 链路层
硬件范畴
6 发送端从应用层往下走、接收端从小往应用层走。
用HTTP举例,
首先发送端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求。
在传输层(TCP协议)把从应用层得到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号以及端口号后,发给网络层。
在网络层(IP协议),增加作为通信目的地的MAC地址后,转发给链路层。7 发送端在层层之间传输数据时,每经过一层必定会被打上一个该层所属的首部信息。反之,接收端,每经过一层时会把对应的首部消去。
各种协议和HTTP协议的关系
第二章 简单的HTTP协议
2.1 请求报文是由请求方法、请求URI、协议版本、可选的首部字段 和内容实体 构成
2.2响应报文基本由 协议版本、状态码、原因短语(解释状态码)、可选的响应首部字段、实体主体 构成。
2.3 HTTP是不保存状态的协议(无状态)
2.4 请求的方法:
2.5 持久链接节省通信量
在HTTP协议的初始版本中,每进行一次HTTP通信就要建立、断开一次TCP连接。所以当一个html中包含多张图片时,这个问题更严重。
为解决这个问题,提出了HTTP keep-alive。只要任意一端没有明确提出断开连接,则保持TCP连接状态。
旨在建立1次TCP连接后进行多次请求和相应的交互。好处是,减少了TCP连接的 重复建立 和 断开 所造成的额外开销。减轻服务器端负载,也提升了响应速度。
持久链接需要服务端和客户端都支持。
2.6 管线化
持久连接使管线化成为可能。
以前发送请求需要得到响应 才能发送下一个请求。
管线化技术出现后,不用等待响应可并行发送多个请求。
(10个图片一起请求)2.7 使用Cookie的状态管理
无状态协议 可以减少服务器的CPU内存的消耗。
于是引入Cookie。通过在请求和响应报文中写入Cookie信息来控制客户端的状态。
-
利用有道云笔记做更新/资源获取
2018-01-18 19:40:53软件方面功能(会在有道云笔记上自动创建一个更新目录用于存放所有的笔记数据) 1.快捷操作 添加/删除/编辑/分享文件(右击列表框显示) 2.缓存cookies到本地,方便下次直接使用 -
VUE学习笔记(五) 引入axios
2021-01-07 21:35:34Axios 是一个基于 promise 的 HTTP 库 VUE前端与服务端进行数据交互, 通常使用 axios 安装axios npm install --save vue-axios 安装成功 引入axios 在main.js中加入 import axios from 'axios' import VueAxios ... -
PHP微信公众平台开发-课程笔记+源码
2018-08-24 17:50:22本压缩包是传智播客“PHP微信公众平台开发”课程的官方笔记和源码,学习视频下载链接为http://yun.itheima.com/course/163.html -
有道云笔记怎么保存网页?有道云笔记保存网页技巧
2021-06-17 10:39:18国内使用有道云笔记的用户还是不少,有道云笔记是一款出色的云同步笔记软件,经常遇到用户在使用有道云笔记中遇到不知道怎么保存网页,下面小编就简单介绍下,希望对大家有帮助。有道云笔记网页剪报插件支持IE,360...国内使用有道云笔记的用户还是不少,有道云笔记是一款出色的云同步笔记软件,经常遇到用户在使用有道云笔记中遇到不知道怎么保存网页,下面小编就简单介绍下,希望对大家有帮助。
有道云笔记网页剪报插件支持IE,360安全,Firefox,Chrome,搜狗,遨游等主流浏览器,可以实现保存网页功能,使用非常方便。
下面是关于有道云笔记具体如何保存网页的具体方法
1、我们需要一个网易账号登陆,没有可以申请一个或者直接选择其他账号登陆也可以。
2、登陆了有道云笔记后登陆这个网站:http://note.youdao.com/web-clipper.html?entry=index&auto=1这是有道云笔记的网页剪报收藏栏,我们需要将该链接拖到我们的书签栏中,书签栏的打开快捷键是Ctrl+Shift+B,IE浏览器需要在浏览器窗口栏空白处点反键勾选收藏夹栏,显示书签栏后将上面网页中的蓝色框框按住不放直接拖入书签栏。
3、拖到书签栏后,书签栏中就有一个收藏到有道云笔记的书签了,现在我们就可以方便的剪取网页内容至有道云笔记了。
4、打开一个想要收藏的网页点击书签栏中的收藏到有道云笔记。这个时候需要登录账号,登录刚才我们登录有道云笔记桌面版的账号。选择我们要保存的内容、保存的位置及标题。
提示保存成功后就可以去有道云笔记客户端查看保存的内容。在我们刚才选择的保存位置中找到我们保存的网页。
国内用户来说,对于笔记类应用小编比较推荐印象笔记,现在印象笔记国内版做的很不错,插件非常丰富,小编个人使用印象笔记也很久了,个人意见,大家可以关注下。
-
计算机网络应用层笔记
2018-11-22 19:53:44计算机网络知识笔记应用层部分,包括HTTP,SMTP,DNS缓存技术等 -
机器学习笔记
2014-07-10 15:49:39一份个人的机器学习笔记,笔记按照斯坦福机器学习公开课的notes整理,其中online学习部分没有整理,reinforcement learning还没接触,有时间补上。水哥@howdeshui#163.com,http://blog.csdn.net/smartempire -
ATK900A模块GPRS调试笔记-发送HTTP协议数据
2016-11-25 15:12:32ATK900A模块GPRS调试笔记-发送HTTP协议数据,咱也来赚点分,要不没有分下载了。代码在笔记二。 The ATK900A module GPRS debugging notes - HTTP protocol to send data, we have to earn points, or not to ... -
【Flask学习笔记:四】Flask 应用和请求上下文
2020-12-22 02:37:26请求对象就是一个很好的例子,它封装了客户端发送的 HTTP 请求。 要想让视图函数能够访问请求对象,一种直接了当的方式是将其作为参数传入视图函数,不过这会导致应用中的每个视图函数都多出一个参数。除了访问... -
个人知识管理系统思源笔记
2021-11-03 00:12:32什么是思源笔记 ? 思源笔记是一款本地优先的个人知识管理系统,支持 Markdown 排版,支持完全离线使用,同时也支持端到端加密同步、 融合块、大纲和双向链接。 思源笔记 对个人使用免费,但免费版不能同步,也不...什么是思源笔记 ?
思源笔记是一款本地优先的个人知识管理系统,支持
Markdown
排版,支持完全离线使用,同时也支持端到端加密同步、 融合块、大纲和双向链接。思源笔记
对个人使用免费,但免费版不能同步,也不支持端到端的加密安装
在群晖上以 Docker 方式安装。
在注册表中搜索
siyuan
,选择第一个b3log/siyuan
,双击直接下载。应该是自动构建的,所以只有一个
latest
版本卷
在
docker
文件夹中,创建一个新文件夹,并将其命名为siyuan
文件夹 装载路径 说明 docker/siyuan
/root/Documents/SiYuan
存放设置、数据 端口
直接用了默认的端口
6806
本地端口 容器端口 6806
6806
环境
这里比较关键,必须要记得,在
命令
中输入下面的指令,否则在导出Markdown
时会打开错误的地址:http://127.0.0.1:6806/export/思源笔记.zip
,当然可能还有其他问题这是因为没有使用
--servePath
指定服务器地址,所以conf.json
中默认生成的是localServeURL": "http://127.0.0.1:6806"
-
在局域网使用:
--servePath "群晖IP:6806"
-
在公网使用
http
协议:--servePath "域名"
-
在公网使用
https
协议:--servePath "域名" --ssl true
一旦容器创建成功,就不能再添加命令行,所以切记一定要在创建之前添加。
老苏先准备好了反代
自定义标题
中新增
-->WebSocket
DSM6.2.1
以下的版本,可以参考『 HomeAssistant设置https访问遇到的坑 』 一文中的方法如果没有做这一步,会出现下面👇这样的提示
所以在命令中需填入
--servePath "synote.laosu.ml" --ssl true
你要换成你自己的域名地址
这会在在
conf.json
中生成localServeURL": "https://synote.laosu.ml"
因为发现和网上很多教程带的参数存在差异,所以通过进入容器获取到了几个参数及其含义
# 版本:2021/09/28 ver [1.3.7] /opt/siyuan # ./kernel --h Usage of ./kernel: -accessAuthCode string access auth code -readonly read-only mode -resident resident memory even if no active session (default true) -servePath string serve path (default "window.location.hostname+\":6806\"") -ssl for https and wss -wd string working directory of SiYuan (default "/opt/siyuan") -workspace string dir path of the workspace, default to ~/Documents/SiYuan/
运行
在浏览器中输入
http://群晖IP:6806
或者https://synote.laosu.ml
就能看到主界面设置中文
主菜单
...
-->Settings
-->Appearance
-->Language
,后面的下拉框中选择简体中文
界面会自动刷新
在线编辑
创建一个新的笔记
直接粘贴一张图片
在
File Station
中看到,笔记在data
目录下以时间开头的文件夹中重命名之后,用文本编辑器打开,是一个
JSON
格式的文件而图片则在
data/assets
文件夹中之所以要研究目录存储,是为了尝试将客户端和网页端设置共同的
工作空间目录
,来实现笔记的同步编辑,但这种方式自思源笔记 v1.2.0
移除WebDAV
支持后,变得略微繁琐以
MacOS
为例:- 群晖上安装套件
WebDAV Server
MacOS
上挂载WebDAV
路径,可以用原生的,也可以用第三方软件,诸如:CloudMounter
、Mountain Duck
、Expandrive
等
如果你没有修改默认端口的话,地址为:
http://群晖IP:5005/docker/siyuan
或者https://webdav.laosu.ml
MacOS
上安装客户端
设置
-->关于
-->工作空间目录
,将工作空间目录
指向挂载的卷重新打开
思源客户端
即可但这种方式背离了
思源笔记
以本地为主的初衷,使得在没有网络的情况下,编辑变得不可用。离线编辑
离线编辑最大的问题就是不同客户端之间的同步(如果你是付费用户,当老苏啥也没说),这又回到了和
Obsidian
一样的问题,需要自己搭建Syncthing
一类的同步服务,最好是有版本控制的那种。chrome 插件
在
chrome
应用商店搜索SiYuan
,并安装。需配置服务器地址和API token
在
关于
中能找到API token
或者打开
conf.json
,下拉到最底部填入服务器地址和获取到的
API token
,如果第三个下拉框中能获取到服务端的目录,那就是OK
了坦率的说不好用,非常简陋
- 感觉每次打开都在登录,要等一下才会刷出目录
- 点了
Send to SiYuan
只有成功后才有提示
- 格式上有时候会比较混乱
可能的原因一方面是网络问题,另一方面可能文章比较长吧,总感觉还是差了点意思
答疑
如果一开始用局域网
IP
调试成功了,想发布到公网用域名访问应该怎么做?Q:能否通过修改
conf.json
中的localServeURL
来实现?A:不能, 即便你删除了
conf.json
文件,过一会儿还是会生成,而且一定是上一次的设置,所以改conf.json
是没用的Q:那是不是只能删除容器重新来?
A:是的,但是可以完全保留你的设置和已经创建的笔记
Q:具体应该怎么做呢?
A:首先停止容器,然后删除
conf.json
文件,再重新创建容器,记得在创建容器时输入正确的命令参考文档
siyuan-note/siyuan: 📕 思源笔记是一款本地优先的个人知识管理系统, 支持细粒度块级引用和 Markdown 所见即所得。
地址:https://github.com/siyuan-note/siyuansiyuan-note/siyuan-chrome: 思源笔记 Chrome 扩展。A Chrome extension for SiYuan.
地址:https://github.com/siyuan-note/siyuan-chrome思源笔记 - 本地优先的个人知识管理系统,支持 Markdown 排版、块级引用和双向链接
地址:https://b3log.org/siyuan/ -
-
python爬虫学习笔记 2.9 (使用bs4得案例)
2020-12-21 04:26:36python爬虫学习笔记 1.2 ( HTTP和HTTPS ) python爬虫学习笔记 1.3 str和bytes的区别 python爬虫学习笔记 1.4 (Request简单使用)request安装 python爬虫学习笔记 1.5 (Requests深入) python爬虫学习笔记 1.6 ... -
蚂蚁笔记
2019-05-02 20:10:07,知识大爆炸已经有很多年了,,,那么在这个海量的知识的时代,我们需要一款笔记软件。“ 。。。 。。。 背景 现在的软件服务不约而同地向云端发展。云服务,确实是一个好主意:在一处记笔... -
[笔记]nginx笔记
2022-03-14 22:13:36介绍nginx的常见作用和常见配置以及原理。