IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 常用http头以及https -> 正文阅读

[网络协议]常用http头以及https

常用Content-Type

属性语义
text/htmlHTML格式
text/plain纯文本格式
text/xmlXML格式
image/gifgif图片格式
image/jpegjpg图片格式
image/pngpng图片格式
以application开头的媒体格式类型:
application/xhtml+xmlXHTML格式
application/xmlXML数据格式
application/atom+xmlAtom XML聚合格式
application/jsonJSON数据格式
application/pdfpdf格式
application/mswordWord文档格式
application/octet-stream二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded<form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
multipart/form-data需要在表单中进行文件上传时,就需要使用该格式

Status

属性语义
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误

详细:
https://www.runoob.com/http/http-status-codes.html

请求方法:

  1. GET 请求指定的页面信息,并返回实体主体。
  2. HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
  3. POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
  4. PUT 从客户端向服务器传送的数据取代指定的文档的内容。
  5. DELETE 请求服务器删除指定的页面。
  6. CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
  7. OPTIONS 允许客户端查看服务器的性能。
  8. TRACE 回显服务器收到的请求,主要用于测试或诊断。
  9. PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。

POST与GET的区别
误区1:
get安全性非常低,post安全性较高

从传输的角度来说,他们都是不安全的,因为 HTTP
在网络上是明文传输的,只要在网络节点上捉包,就能完整地获取数据报文,要想安全传输,就只有加密,也就是 HTTPS
从另一角度:POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中

误区2:
get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

HTTP 协议没有 Body 和 URL 的长度限制,对 URL 限制的大多是浏览器和服务器的原因。

w3c描述

分类postget
获取数据提交数据
后退按钮/刷新无害数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
书签可收藏为书签不可收藏为书签
缓存能被缓存不能缓存
编码类型application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
历史参数保留在浏览器历史中。参数不会保存在浏览器历史中。
对数据长度的限制是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。无限制。
对数据类型的限制只允许 ASCII 字符。没有限制。也允许二进制数据。
安全性与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
可见性数据在 URL 中对所有人都是可见的。数据不会显示在 URL 中。

https:

在这里插入图片描述

HTTPS 相比 HTTP 多了一层 SSL/TLS
SSL(Secure Socket Layer,安全套接字层):1994年SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

TLS(Transport Layer Security,传输层安全):其前身是 SSL
HTTPS=非对称加密+对称加密+HASH+CA
在这里插入图片描述
详细可以看https://zhuanlan.zhihu.com/p/27395037

  1. 对称加密
    有流式、分组两种,加密和解密都是使用的同一个密钥。
    例如:DES、AES-GCM、ChaCha20-Poly1305等
  2. 非对称加密
    加密使用的密钥和解密使用的密钥是不相同的,分别称为:公钥、私钥,公钥和算法都是公开的,私钥是保密的。非对称加密算法性能较低,但是安全性超强,由于其加密特性,非对称加密算法能加密的数据长度也是有限的。
    例如:RSA、DSA、ECDSA、 DH、ECDHE
  3. 哈希算法
    将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆。
    例如:MD5、SHA-1、SHA-2、SHA-256 等
  4. 数字签名
    签名就是在信息的后面再加上一段内容(信息经过hash后的值),可以证明信息没有被修改过。hash值一般都会加密后(也就是签名)再和信息一起发送,以保证这个hash值不被修改。

一些有的没的

协议头说明示例
User-Agent浏览器的身份标识字符串User-Agent: Mozilla/……
Via告诉服务器,这个请求是由哪些代理发出的。Via: 1.0 fred, 1.1 itbilu.com.com (Apache/1.1)
Accept可接受的响应内容类型(Content-Types)Accept: text/plain
Accept-Charset可接受的字符集Accept-Charset: utf-8
Accept-Encoding可接受的响应内容的编码方式。Accept-Encoding: gzip, deflate
Accept-Language可接受的响应内容语言列表Accept-Language: en-US
Accept-Datetime可接受的按照时间来表示的响应内容版本Accept-Datetime: Sat, 26 Dec 2015 17:30:00 GMT
Authorization用于表示HTTP协议中需要认证资源的认证信息Authorization: Basic OSdjJGRpbjpvcGVuIANlc2SdDE==
Cache-Control用来指定当前的请求/回复中的,是否使用缓存机制。Cache-Control: no-cache
Connection客户端(浏览器)想要优先使用的连接类型Connection: keep-alive,Connection: Upgrade
Cookie由之前服务器通过Set-Cookie(见下文)设置的一个HTTP协议Cookie Cookie: $Version=1; Skin=new;
Content-Length以8进制表示的请求体的长度Content-Length: 348
Content-MD5请求体的内容的二进制 MD5 散列值(数字签名),以 Base64 编码的结果 Content-MD5: oD8dH2sgSW50ZWdyaIEd9D==废弃
Content-Type请求体的MIME类型 (用于POST和PUT请求中)Content-Type: application/x-www-form-urlencoded
Date发送该消息的日期和时间(以RFC 7231中定义的"HTTP日期"格式来发送)Date: Dec, 26 Dec 2015 17:30:00 GMT
Expect表示客户端要求服务器做出特定的行为Expect: 100-continue
From发起此请求的用户的邮件地址From: user@itbilu.com
Host表示服务器的域名以及服务器所监听的端口号。如果所请求的端口是对应的服务的标准端口(80),则端口号可以省略。Host: www.itbilu.com:80
If-Match仅当客户端提供的实体与服务器上对应的实体相匹配时,才进行对应的操作。主要用于像 PUT 这样的方法中,仅当从用户上次更新某个资源后,该资源未被修改的情况下,才更新该资源。If-Match: “9jd00cdj34pss9ejqiw39d82f20d0ikd”
If-Modified-Since允许在对应的资源未被修改的情况下返回304未修改If-Modified-Since: Dec, 26 Dec 2015 17:30:00 GMT
If-None-Match允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified ),参考 超文本传输协议 的实体标记If-None-Match: “9jd00cdj34pss9ejqiw39d82f20d0ikd”
If-Range如果该实体未被修改过,则向返回所缺少的那一个或多个部分。否则,返回整个新的实体If-Range: “9jd00cdj34pss9ejqiw39d82f20d0ikd”
If-Unmodified-Since仅当该实体自某个特定时间以来未被修改的情况下,才发送回应。If-Unmodified-Since: Dec, 26 Dec 2015 17:30:00 GMT
Max-Forwards限制该消息可被代理及网关转发的次数。Max-Forwards: 10
Origin发起一个针对跨域资源共享的请求(该请求要求服务器在响应中加入一个Access-Control-Allow-Origin的消息头,表示访问控制所允许的来源)。Origin: http://www.itbilu.com
Pragma与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生。Pragma: no-cache
Proxy-Authorization用于向代理进行认证的认证信息。Proxy-Authorization: Basic IOoDZRgDOi0vcGVuIHNlNidJi2== Range
Referer表示浏览器所访问的前一个页面,可以认为是之前访问页面的链接将浏览器带到了当前页面。Referer其实是Referrer这个单词,但RFC制作标准时给拼错了,后来也就将错就错使用Referer了。Referer: http://itbilu.com/nodejs
TE浏览器预期接受的传输时的编码方式:可使用回应协议头Transfer-Encoding中的值(还可以使用"trailers"表示数据传输时的分块方式)用来表示浏览器希望在最后一个大小为0的块之后还接收到一些额外的字段。TE: trailers,deflate
Upgrade要求服务器升级到一个高版本协议。Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Warning一个一般性的警告,表示在实体内容体中可能存在错误。Warning: 199 Miscellaneous warning

响应

协议头说明示例
Access-Control-Allow-Origin指定哪些站点可以参与跨站资源共享Access-Control-Allow-Origin: *
Accept-Patch指定服务器支持的补丁文档格式,适用于http的patch方法Accept-Patch: text/example;charset=utf-8
Accept-Ranges服务器通过byte serving支持的部分内容范围类型Accept-Ranges: bytes
Age对象在代理缓存中暂存的秒数Age: 12
Allow设置特定资源的有效行为,适用方法不被允许的http 405错误Allow: GET, HEAD
Alt-Svc服务器使用"Alt-Svc"(Alternative Servicesde的缩写)头标识资源可以通过不同的网络位置或者不同的网络协议获取Alt-Svc: h2=“http2.example.com:443”; ma=7200
Cache-Control告诉服务端到客户端所有的缓存机制是否可以缓存这个对象,单位是秒Cache-Control: max-age=3600
Connection设置当前连接和hop-by-hop协议请求字段列表的控制选项Connection: close
Content-Disposition告诉客户端弹出一个文件下载框,并且可以指定下载文件名Content-Disposition: attachment; filename=“fname.ext”
Content-Encoding设置数据使用的编码类型Content-Encoding: gzip
Content-Language为封闭内容设置自然语言或者目标用户语言Content-Language: en
Content-Length响应体的字节长度Content-Length: 348
Content-Location设置返回数据的另一个位置Content-Location: /index.htm
Content-MD5设置基于MD5算法对响应体内容进行Base64二进制编码Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range标识响应体内容属于完整消息体中的那一部分Content-Range: bytes 21010-47021/47022
Content-Type设置响应体的MIME类型Content-Type: text/html; charset=utf-8
Date设置消息发送的日期和时间Date: Tue, 15 Nov 1994 08:12:31 GMT
Expires设置响应体的过期时间Expires: Thu, 01 Dec 1994 16:00:00 GMT
Last-Modified设置请求对象最后一次的修改日期Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Location在重定向中或者创建新资源时使用Location: http://www.w3.org/pub/WWW/People.html
Pragma设置特殊实现字段,可能会对请求响应链有多种影响Pragma: no-cache
Proxy-Authenticate设置访问代理的请求权限Proxy-Authenticate: Basic
Public-Key-Pins设置站点的授权TLS证书Public-Key-Pins: max-age=2592000; pin-sha256=“E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=”;
Server服务器名称Server: Apache/2.4.1 (Unix)
Set-Cookie设置HTTP CookieSet-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
Status设置HTTP响应状态Status: 200 OK
Upgrade请求客户端升级协议Upgrade: HTTP/2.0, HTTPS/1.3, IRC/6.9, RTA/x11, websocket
Vary通知下级代理如何匹配未来的请求头已让其决定缓存的响应是否可用而不是重新从源主机请求新的Example 1: Vary: *
Via通知客户端代理,通过其要发送什么响应Via: 1.0 fred, 1.1 example.com (Apache/1.1)
Warning实体可能会发生的问题的通用警告Warning: 199 Miscellaneous warning

节选自互联网

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 12:07:15  更:2021-10-08 12:07:52 
 
开发: 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年12日历 -2024/12/31 5:09:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码