| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 《图解HTTP》学习笔记 -> 正文阅读 |
|
[网络协议]《图解HTTP》学习笔记 |
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:资源最后一次被修改的时间。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:00:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |