• [问题求助] 如何搭建HTTP订阅推送
    【功能模块】本人想实现的是一个将设备采集的图片通过MQTT协议上传到物联网平台,然后再通过平台的HTTP订阅推送功能转发到本地的HTTP服务器上。类似下面的这种架构。【操作步骤&问题现象】1、首先我是将采集到的图片经过base64编码,然后保存在一个txt文件里面。通过消息上报的形式将该文件的base64编码字符上传到物联网云平台。如下图是平台接收到的base64编码数据。但是这里出现了一个问题就是:如果我想解码这些base64编码数据为图片的话,我需要手动复制出中间的这一串base64数据,然后在粘贴到解码器里面,解码为图片。所以这就显得很麻烦,于是我看到了http订阅推送功能,想让平台再将这一串消息推送到本地的HTTP服务器上,然后在http服务器里面去实现我的业务逻辑。不知道这样的方案可否行得通?2、如果可行的话,那么现在遇到的问题是如何搭建http服务器?如何将HTTP服务器与华为云物联网对接起来实现订阅推送功能?请问是否有相关文档或者技术支持?如果有的话,感激不尽!【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [其他] moxing是不是可能支持HTTP资源
    moxing支持本地到OBS、OBS到OBS的数据传输,但是不支持HTTP资源,是不是可以支持呢?这样更方便呢。
  • [技术干货] 在逃小姐的读书笔记——《图解HTTP》第十章、第十一章
    《图解HTTP》完整目录  >>    第10章 构建Web内容的技术        HTML 超文本标记语言           目前的HTML标准:HTML 5,解决浏览器间兼容问题,并可把文本作为数据对待,更容易复用,动画等效果也更生动。           HTML文档标签< >           CSS(Cascading Style Sheets,层叠样式表):指定如何展现HTML的各种元素,让文档结构与设计分离,达到解耦的作用动态HTML 技术使用:客户端脚本语言 JavaScript+ DOM(Document Object Model,文档对象模型)           DOM 是用以操作 HTML 文档和 XML 文档的 API(ApplicationProgramming Interface,应用编程接口)。使用 DOM 可以将 HTML 内的元素当作对象操作.    Web的应用           Web应用是指通过Web功能提供的应用程序           由程序创建的内容称为动态内容,而事先准备好的内容称为静态内容。Web 应用则作用于动态内容之上。           CGI(Common Gateway Interface,通用网关接口)是指 Web 服务器在接收到客户端发送过来的请求后转发给程序的一组机制。使用 CGI 的程序叫做 CGI 程序。           Servlet是一种能在服务器上创建动态内容的程序。Servlet 是用 Java语言实现的一个接口。比CGI运行负载小。    数据分布的格式及语言           1.XML(eXtensible Markup Language,可扩展标记语言)是一种可按应用目标进行扩展的通用标记语言,目的是让互联网数据共享变得更容易。(相比于HTML而言,XML的结构基本上都是用标签分割而成的树形结构)           2.RSS(简易信息聚合或聚合内容)/Atom 发布新闻或博客日志等更新信息文档的格式的总称,用到 XML           3.JSON 一种以JavaScript(ECMAScript)的对象表示法为基础的轻量级数据标记语言。     目前火爆(前端框架:Vue,React 等;数据发布语言:XML,JSON)    第十一章 Web的攻击技术        针对Web的攻击技术           在客户端篡改请求(在web应用中,从浏览器那里接受到的HTTP请求的全部内容,都可以在客户端自由的变更、篡改)           针对Web应用的攻击模式:                      (1)主动攻击,直接(代表:SQL 注入攻击和 OS 命令注入攻击);                      (2)被动攻击,圈套诱导(代表:跨站脚本攻击和跨站点请求伪造。)    因输出值转义不完全引发的安全漏洞           实施 Web 应用的安全对策                      (1).客户端的验证                      (2).Web 应用端(服务器端)的验证 :(1输入值验证;(2输出值转义           ♦ 跨站脚本攻击XSS:通过存在安全漏洞的Web 网站注册用户的浏览器内运行非法的HTML 标签或 JavaScript 进行的一种攻击。一般在动态生成HTML处发生。危害:获取个人信息、伪造文章图片、窃取用户Cookie值,发送恶意请求。           ♦ SQL 注入攻击:是指针对 Web 应用使用的数据库,通过运行非法的 SQL 而产生的攻击。危害:篡改数据、规避认证、执行和数据库服务器业务关联的程序等。                      (SQL 是用来操作关系型数据库管理系统的数据库语言。 举例:SELECT * FROM xxx)           ♦ OS 命令注入攻击:通过web应用,执行非法的操作系统命令。           ♦ HTTP首部注入攻击:是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。属于被动攻击。危害:设置任何Cookie信息,重定向到任意URL、显示任意主体(HTTP响应截断攻击:往首部主体内添加内容)           ♦ 邮件首部注入:是指Web应用中的邮件发送功能,攻击者通过向邮件首部To或Subject内任意添加非法内容发起的攻击。           ♦ 目录遍历攻击:是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。           ♦ 远程文件包含漏洞:是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的 URL 充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。    因设置或设计上的缺陷引发的安全漏洞           ♦ 强制浏览:从安置在Web服务器的公开目录下的文件中,浏览非自愿公开的文件。危害:泄露个人信息、泄露无权限信息、泄露未外连到外界的文件           ♦ 不正确的错误消息处理:指在浏览界面展现详细的错误提示信息给攻击者启发           ♦ 开放重定向:对指定的任意URL做重定向的功能,会诱导至恶意网站    因会话管理疏忽引发的安全漏洞           ♦ 会话劫持:非法获取用户会话ID,非法使用ID伪装成用户           ♦ 会话固定攻击:强制用户使用攻击者的会话ID(如引诱用户认证,认证后ID变为认证状态给攻击者利用),属于被动攻击           ♦ 跨站点请求伪造CSRF:是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。    其他安全漏洞           ♦ 密码**:(1)密码试错[穷举法、字典法:猜测可能值保存为字典….];(2)对已加密密码的**(指攻击者入侵系统,已获得加密或散列处理的密码数据的情况)           ♦ 点击劫持:是指利用透明的按钮或链接做成陷阱进行不知情点击,又称界面伪装           ♦ DoS 攻击:集中利用访问请求造成资源过载或服务停止。多台计算机发起为DDOS攻击。           ♦ 后门程序:指开发设置的隐藏入口  END虽意犹未尽,但《图解HTTP》的笔记整理于此就结束啦,完整目录(点击),想要详细学习的伙伴们可以进一步学习《HTTP权威指南》,让我们期待下一本书的开始,BY~~
  • [整体安全] 【安全通告】Apache HTTP Server SSRF服务器端请求伪造漏洞风险通告
    Apache官方发布安全通告,披露了Apache HTTP Server存在缓冲区溢出及SSRF漏洞,漏洞编号CVE-2021-44790、CVE-2021-44224。可导致SSRF等危害。为避免您的业务受影响,建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。漏洞详情:Apache HTTP Server(简称Apache),是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其具有的跨平台性和安全性,被广泛使用,是最流行的Web服务器端软件之一。CVE-2021-44224(SSRF 漏洞):如果httpd 配置作为转发代理(ProxyRequests on) ,可允许攻击者通过精心构造的 URI ,导致崩溃(空指针取消引用),或者如果httpd的配置为混合转发和反向代理声明,可以允许攻击者将请求发送到声明的 Unix 域套接字端点,造成服务器端请求伪造。CVE-2021-44790(缓冲区溢出漏洞):攻击者可通过精心构造的请求正文可能会导致 mod_lua 多部分解析器(从 Lua 脚本调用的 r:parsebody())缓冲区溢出.但Apache httpd 团队认为该漏洞较难利用。风险等级:高风险漏洞风险:攻击者可利用该漏洞导致服务器端请求伪造影响版本:CVE-2021-44224:Apache HTTP Server >=2.4.7, <=2.4.51CVE-2021-44790:Apache HTTP Server <=2.4.51安全版本:Apache HTTP Server >= 2.4.52修复建议:官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,酌情升级至安全版本【备注】:建议您在升级前做好数据备份工作,避免出现意外漏洞参考:https://httpd.apache.org/security/vulnerabilities_24.html
  • [技术干货] Nginx安装与配置
    Nginx 安装系统平台:CentOS release 6.6 (Final) 64位。一、安装编译工具及库文件yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel二、首先要安装 PCREPCRE 作用是让 Nginx 支持 Rewrite 功能。1、下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz[root@bogon src]# cd /usr/local/src/[root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz2、解压安装包:[root@bogon src]# tar zxvf pcre-8.35.tar.gz3、进入安装包目录[root@bogon src]# cd pcre-8.354、编译安装 [root@bogon pcre-8.35]# ./configure[root@bogon pcre-8.35]# make && make install5、查看pcre版本[root@bogon pcre-8.35]# pcre-config --version安装 Nginx1、下载 Nginx,下载地址:https://nginx.org/en/download.html[root@bogon src]# cd /usr/local/src/[root@bogon src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz 2、解压安装包[root@bogon src]# tar zxvf nginx-1.6.2.tar.gz3、进入安装包目录[root@bogon src]# cd nginx-1.6.24、编译安装[root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35[root@bogon nginx-1.6.2]# make[root@bogon nginx-1.6.2]# make install5、查看nginx版本[root@bogon nginx-1.6.2]# /usr/local/webserver/nginx/sbin/nginx -v到此,nginx安装完成。Nginx 配置创建 Nginx 运行使用的用户 www:[root@bogon conf]# /usr/sbin/groupadd www [root@bogon conf]# /usr/sbin/useradd -g www www配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容[root@bogon conf]#  cat /usr/local/webserver/nginx/conf/nginx.confuser www www;worker_processes 2; #设置值和CPU核心数一致error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别pid /usr/local/webserver/nginx/nginx.pid;#Specifies the value for maximum file descriptors that can be opened by this process.worker_rlimit_nofile 65535;events{  use epoll;  worker_connections 65535;}http{  include mime.types;  default_type application/octet-stream;  log_format main  '$remote_addr - $remote_user [$time_local] "$request" '               '$status $body_bytes_sent "$http_referer" '               '"$http_user_agent" $http_x_forwarded_for';  #charset gb2312;       server_names_hash_bucket_size 128;  client_header_buffer_size 32k;  large_client_header_buffers 4 32k;  client_max_body_size 8m;       sendfile on;  tcp_nopush on;  keepalive_timeout 60;  tcp_nodelay on;  fastcgi_connect_timeout 300;  fastcgi_send_timeout 300;  fastcgi_read_timeout 300;  fastcgi_buffer_size 64k;  fastcgi_buffers 4 64k;  fastcgi_busy_buffers_size 128k;  fastcgi_temp_file_write_size 128k;  gzip on;   gzip_min_length 1k;  gzip_buffers 4 16k;  gzip_http_version 1.0;  gzip_comp_level 2;  gzip_types text/plain application/x-javascript text/css application/xml;  gzip_vary on;   #limit_zone crawler $binary_remote_addr 10m; #下面是server虚拟主机的配置 server  {    listen 80;#监听端口    server_name localhost;#域名    index index.html index.htm index.php;    root /usr/local/webserver/nginx/html;#站点目录      location ~ .*\.(php|php5)?$    {      #fastcgi_pass unix:/tmp/php-cgi.sock;      fastcgi_pass 127.0.0.1:9000;      fastcgi_index index.php;      include fastcgi.conf;    }    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$    {      expires 30d;  # access_log off;    }    location ~ .*\.(js|css)?$    {      expires 15d;   # access_log off;    }    access_log off;  }}检查配置文件nginx.conf的正确性命令:[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx -t
  • [问题求助] 【Atlas 200 DK产品】【驱动升级】*** stack smashing detected ***: &lt;unknown&gt;
    【功能模块】【操作步骤&问题现象】1、按照https://support.huaweicloud.com/environment-deployment-Atlas200DK1011/atlased_04_0034.html升级200 DK中途没有报错,且成功重启,重启之后出现一下错误
  • [技术干货] 在逃小姐的读书笔记——《图解HTTP》第八章、第九章
    完整目录  >>    第八章 确认访问用户身份的认证        何为认证           1.核对信息                 • 密码:只有本人才会知道的字符串信息。                 • 动态令牌:仅限本人持有的设备内显示的一次性密码。                 • 数字证书:仅限本人(终端)持有的信息。                 • 生物认证:指纹和虹膜等本人的生理信息。                 • IC 卡等:仅限本人持有的信息。           2. HTTP/1.1 使用的认证方式                 ▶ BASIC 认证(基本认证)                 ▶ DIGEST 认证(摘要认证)                 ▶ SSL 客户端认证                 ▶ FormBase 认证(基于表单认证)                 ▶ 等等    BASIC认证           Web 服务器与通信客户端之间进行的。           认证步骤:(1)客户端发送请求Authorization Required;(2)服务器端返回状态码401,带WWW-Authenticate以告知客户端需要进行的认证;(3)客户端将用户ID和密码以Base64方式编码后发送;(4)服务器端接收包含首部字段Authorization,成功200,认证失败返回401           *注意Base64 是编码方式,不是加密处理           问题:不灵活、不安全    DIGEST认证           同样质询/响应的方式(challenge/response),但不像BASIC认证那样直接发送明文密码。           认证步骤:(1)客户端请求;(2)服务器端发送临时质询码(随机数)及认证状态码401;(3)客户端发送摘要及由质询码计算出的响应码;(4)服务器认证,成功200,失败401    SSL客户端认证           需要客户端安装证书           认证步骤:(1)客户端发送认证资源请求;(2)服务器发送Certificate Request报文,要求客户端提供证书。(3)客户端将证书信息以Client Certificate报文方式发送给服务器。(4)服务器验证后领取证书内客户端的公开密钥,开始HTTPS加密通信。           一般,SSL客户端认证由证书+表单认证的方式,采用双因素认证    基于表单认证(多数)           此方式认证的登录信息及认证过程都无标准化方法,一般用Cookie来管理会话(联系前面),保存用户的登录状态。           客户端会向服务器上的 Web 应用程序发送登录信息(Credential),按登录信息的验证结果认证。           认证步骤:(1)客户端把用户ID和密码放入报文的实体部分,通常用POST方法把请求发送给服务器;(2)服务器在首部字段Set-Cookie内写入Session ID以用于是识别客户;(3)客户端接收Session ID,将其作为Cookie保存在本地。(4)下次想服务器发送请求,Session ID也会发给服务器,浏览器自动发送Cookie    第九章 基于HTTP的功能追加协议        SPDY           产生举例场景:网站上新内容的及时更新,http需要频繁的确认           HTTP问题:   (1) 一条连接一个请求                                 (2)请求只从客户端开始,客户端只接受响应                                 (3)首部信息未经压缩,首部信息越多延迟越大                                 (4)首部冗长,每次发送相同首部造成浪费                                 (5)非强制压缩发送           解决:1. Ajax(Asynchronous JavaScript and XML,异步JavaScript与XML技术):只更新Web局部页面,减少数据传输,但有大量请求产生。                     2. Comet:将响应置于挂起的状态,一旦有更新,服务器立刻返回,但是连接时间变长,浪费资源。                     3. SPDY:没有完全改写HTTP协议,是在 TCP/IP 的应用层与运输层之间通过新加会话层的形式运作。同时,考虑到安全性问题,SPDY 规定通信中使用 SSL。(会话控制数据流动,HTTP建立通信连接)图:SPDY的设计                       使用SPDY后,HTTP获得额外功能:                       • 多路复用流:通过单一的 TCP 连接,可以无限制处理多个HTTP请求。                       • 赋予请求优先级                       • 压缩 HTTP 首部:减少数据包数量和发送字节数                       • 推送功能:服务器主动先客户端推送数据                       • 服务器提示功能:主动提示客户端请求所需的数据                    *SPDY的确是一种可有效消除HTTP瓶颈的技术,但很多Web网站存在的问题并非仅仅是有HTTP瓶颈导致的    WebSocket           解决HTTP瓶颈的新协议及API,是Web浏览器和Web服务器之间全双工通信标准。           主要特点:(1)一旦建立WebSocket协议的通信连接,之后所有的通信都依靠这个专用协议进行。                          (2)无论客户端或者和服务器端都可直接向对方发送报文                              (3)推送功能:支持服务器直接发送数据                          (4)减少通信量:建立连接,保持连接状态,并且WebSocket首部信息很小           有握手▪请求、握手▪响应图:WebSocket通信    HTTP/2.0  推进中,改善使用Web速度体验    Web 服务器管理文件的 WebDAV           WebDAV(即基于万维网的分布式创作和版本控制),是一个可对 Web 服务器上的内容直接进行文件复制、编辑、加解锁等操作的分布式文件系统           拓展概念:集合(统一管理多个资源的概念)                            资源(文件或集合)                            属性(“名称 = 值”的格式)                            锁(文件不可编辑的状态)           新增方法与状态码(书182页)下一章:构建Web内容的技术
  • [问题求助] 【M2241产品】【CURL第三方库功能】 app里面能否使用第三方libcurl库进行HTTP上报
    【功能模块】    app里面能否使用第三方libcurl库进行HTTP上报
  • [技术干货] 正则match, research区别
    1. 使用格式(1)match是 re.match(pattern, string)(2)search是re.search(pattern, string)2. 见下图,可知,(1)match是从一开始便用pattern进行匹配,要是一开始没有匹配成功,那么便停止匹配,返回None;(2)research并不是一开始用pattern进行匹配,而是在string字符串里全部遍历查找。       参考代码:      运行结果:对于某些怪问题:         问题:match岂不是没啥用,只能匹配一开头匹配成功的字符串?         解答:首先,有些情况下的需求就是要一开始匹配字符串,没有匹配到就立马返回结果None,提高效率,此种情况下速度也要优先于research;                   比如,pattern是 'http',string是'sftp://www.huawei.com/........../http',我只想知道开头是否是http,但是用research却要一直查找到最后,                   即使查找到了,也不是我的需求。                   再来,可从上图得知,research返回的结果也是re.Match对象,也就是说research是基于match模块来开发的,如果不要match,那research还怎么玩 ?!!!
  • [技术干货] 在逃小姐的读书笔记——《图解HTTP》第六章(下)、第七章
    完整目录  >>大家早上好,今天是感恩节哦~一路走来,所遇皆温柔,感谢每一位为我们打开世界的人    第六章 HTTP首部(下)        响应首部字段    服务器向客户端响应报文中使用的字段,用于补充附加信息、服务器信息、附加要求等           1.Accept-Ranges :bytes / none  服务器告知的可处理请求范围,不能处理则指定为none           2.Age :数字(单位秒)   回应客户端经历的响应时间           3.ETag  将资源以字符串形式做唯一性标识的方式,比如在URI相同的情况下,如何区分中文版和英文版呢,此时用ETag值来指定资源。强ETag:细变化也改变;弱ETag:根本变化改变。           4.Location  告诉客户端资源位置变更到另一URI           5.Proxy-Authenticate  类似WWW-Authorization,但是是代理服务器对客户端的认证信息           6.Retry-After: 数字(秒)   告知客户端应该在多久之后再次发送请求           7.Server  告知客户端当前服务器上安装的 HTTP 服务器应用程序的信息,包括软件应用名称、版本号、启动可选项等。           8.Vary  可用于对缓存进行控制           9.WWW-Authenticate  用于 HTTP 访问认证,服务器对客户端的,告知客户端适用于访问请求 URI 所指定资源的认证方案(Basic 或是 Digest)。    实体首部字段           1.Allow: GET, HEAD   通知客户端资源可支持的 HTTP 方法。           2.Content-Encoding: gzip   告诉客户端服务器对实体的主体进行压缩的内容编码方式           3.Content-Language: zh-CN   告知客户端,实体主体使用的自然语言           4.Content-Length: 15000   实体主体的大小(字节)           5.Content-Location   替代对应资源的URI           6.Content-MD5   接收的报文主体与首部字段 Content-MD5 的字段值比较,检测完整性。无法验证偶发性改变和恶意篡改。           7.Content-Range   针对范围请求,返回响应           8.Content-Type   说明了实体主体内对象的媒体类型           9.Expires    告知客户端资源失效日期           10.Last-Modified   表明资源最终修改时间    为Cookie服务的首部字段           1.Set-Cookie属性  当服务器开始管理客户端的状态时,会事先告知各种信息           2.Expires 属性   浏览器可发送Cookie的有效期           3.Path属性   限制Cookie发送范围的文件目录           4.Domain属性   相同域名后缀,都可发送Cookie,不太安全           5.Secure属性   仅在 HTTPS 安全连接时,才可以发送Cookie           6.HttpOnly 属性   使 JavaScript 脚本无法获得 Cookie,可防止跨站脚本攻击(Cross-sitescripting,XSS)    其他首部字段           1.X-Frame-Options  属于http响应头部,于控制网站内容在其他 Web 网站的 Frame 标签内的显示问题,防止点击劫持           2.X-XSS-Protection   属于http响应头部,用于控制浏览器XSS防护机制,0 XSS无效,1有效。           3.DNT   属于 HTTP 请求首部,意为拒绝个人信息被收集,0 同意被**,1拒绝被**。           4.P3P  用于保护用户隐私的技术           *X- 前缀表示非标准参数    第七章 确保Web安全的HTTPS        http缺点           1.明文     解决:(1)通信的加密:SSL; (2)内容的加密:可以对报文主体进行加密处理(而通信本身不加密)           2.不验证     解决:SSL不仅可提供加密处理,并有三方机构证书确认各方身份。           3.不保证完整性:导致攻击者拦截和内容篡改(即中间人攻击,MTTM),解决:散列校验(如MD5、SHA-1)和数字签名(如PGP,完美隐私),但没有办法百分之百保证结果正确,所以用HTTPS组合方式。     HTTP+加密+认证+完整性保护=HTTPS           1.HTTPS是身批SSL外壳的HTTP               HTTPS(HTTPSecure,超文本传输安全协议)或 HTTP over SSL,不是应用层新协议,是HTTP通信接口部分用SSL(Secure Socket Layer)和 TLS(Transport Layer Security)协议代替而已。通常,HTTP直接和TCP通信。当使用SSL 时,则演变成先和SSL通信,再由SSL和TCP通信了。           2.加密密钥             • 加解密同一个密钥——共享密钥加密/对称密钥加密             • 公开密钥发送+私有密钥解密——公开密钥加密/非对称密钥加密(一对), SSL采用公开密钥加密处理方式             • HTPS的混合加密机制:交换密钥环节使用公开密钥加密方式,之后的通信使用共享密钥加密方式。           3.证书类型             • 证明公开密钥正确性的数字证书(由权威数字证书认证机构颁发)             • 证明组织真实性的EV SSL证书             • 确认客户端的客户端证书,如网银             • 自己颁发的服务器证书:自签名正式—浏览器访问出现“无法确认安全性”等告警信息           4.HTTP的安全通信机制(书153页)           5.HTTPS比HTTP要慢2-100倍下一章:确认访问用户身份的认证
  • [技术干货] 在逃小姐的读书笔记——《图解HTTP》第五章、第六章(上)
    完整目录  >>参与一项运动,培养一种爱好,结交一个朋友,阅读一本好书激发活力,释放能量,大家冲冲冲     第五章 与HTTP协作的web服务器        单虚拟主机多域名            通过虚拟服务器可以实现允许一台HTTP服务器搭建多个web站点。如果两域名同时部署在同一个服务器上(相同的IP地址),使用dns服务解析域名后,两者的访问IP地址会相同。因此在发送 HTTP 请求时,必须在 Host 首部内完整指定主机名或域名的 URI。    通信数据转发程序           •  代理:传话,每次经过代理服务器时,会追加写入Via首部信息。有缓存代理(响应缓存资源)和透明代理(不对报文做任何加工的代理)。           •  网关:像自己拥有资源的源服务器一样对请求进行处理。利用网关可以将HTTP请求转化为其他协议通信,可以提高安全性,和其他系统联动等。           •  隧道:安全,透明    缓存            指代理服务器或客户端本地磁盘内保存的资源副本            因为缓存有效期,需向源服务器确认资源的有效性            缓存地:缓存服务器或客户端浏览器中(即临时网络文件),如果浏览器缓存有效,可以不必向服务器请求相同的资源,而可以直接从本地磁盘读取。    第六章 HTTP首部(上)        回顾下HTTP报文结构            HTTP请求报文            HTTP响应报文             首部字段:提供报文主体大小、所使用语言,认证信息等内容。构成: 字段名:字段值(字段值对应HTTP首部字段可以有多个值)            4种HTTP首部字段类型:通用首部字段、请求首部字段、响应首部字段、实体首部字段            首部字段说明p83、p84页    End-to-end 首部和 Hop-by-hop 首部             端到端首部(End-to-end Header):分在此类别中的首部会转发给请求 / 响应对应的最终接收目标,且必须保存在由缓存生成的响应中,另外规定它必须被转发。            逐跳首部(Hop-by-hop Header):分在此类别中的首部只对单次转发有效,需提供 Connection 首部字段(即逐跳首部、连接的管理)。    HTTP/1.1 通用首部字段            1. Cache-Control   控制缓存行为                    • Cache-Control : public/private 表示所有人可利用缓存/此缓存只提供给特定对象。                    • Cache-Control: no-cache 如来自客户端请求则表示客户端将不会接收缓存过的响应,必须要源服务器的。如来自服务器响应,则服务器不能对资源进行缓存。                    • Cache-Control: no-cache=Location 只出现在响应指令中,客户端接收带指定参数值的此响应报文,不能使用缓存。而无参数值可以。                    • Cache-Control: no-store 不缓存,暗示有机密信息,注意和(2)区别                    • Cache-Control: s-maxage/max-age=604800(单位 :秒) max-age表示资源保存为缓存的最长时间。请求报文中包含:不为0时,缓存服务器直接处理,为0时,交源服务器处理。响应报文中包含:缓存服务器不对资源有效性做再次确认。                    • Cache-Control: min-fresh=60(单位:秒)指令要求缓存服务器返回至少还未过指定时间的缓存资源                    • Cache-Control: max-stale=3600(单位:秒) 指示缓存资源,即使过期(或在过期指定时间内)也照常接收                    • Cache-Control: only-if-cached 表示客户端仅在缓存服务器本地缓存目标资源的情况下才会要求其返回,若发生请求缓存服务器的本地缓存无响应,则返回状态码 504                    • Cache-Control: must-revalidate 代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效。无效,则向客户端发504状态码。                    • Cache-Control: proxy-revalidate 缓存服务器响应前,必须再次验证缓存的有效性。                    • Cache-Control: no-transform 缓存都不允许缓存改变实体主体的媒体类型                    • 扩展:通过 cache-extension 标记(token),可以扩展 Cache-Control 首部字段内的指令。            2. Connection   逐条首部、连接的管理                  (1) 控制不再转发给代理的首部字段(即Hop-by-hop 首部)                    如connection:upgrade   此首部字段upgrade代理接受后不再转发                  (2)管理的持久连接;                    Connection: close  默认连接是持久连接,指定close首部字段值时断开            3. Date   创建 HTTP 报文的日期和时间            4. Pragma: no-cache    只存在于客户端发送请求中,表示不接收缓存            5. Trailer  报文末端的首部一览                    会事先说明在报文主体后记录了哪些首部字段。该首部字段可应用在 HTTP/1.1 版本分块传输编码时。(如首部字段包含Trailer:Expires   然后在报文主体后  Expires:xxx明细)            6. Transfer-Encoding   规定了传输报文主体时采用的编码方式            7. Upgrade    用于检测 HTTP 协议及其他协议是否可使用更高的版本进行通信            8. Via   **传输路径 各个代理服务器会往Via首部添加自身服务器的信息。            9. Warning   错误通知    请求首部字段              1. Accept   通知服务器,用户代理能够处理的媒体类型及媒体类型的相对优先级q(范围0-1,默认1.0最大,可精确到小数点后3位)              2. Accept-Charset   可用来通知服务器用户代理支持的字符集及字符集的相对优先顺序。应用于协商机制              3.Accept-Encoding   报文主体可压缩,告知支持的内容编码(可多个)及优先级顺序,如上述的gzip、deflate编码格式。              4.Accept-Language   用来告知服务器用户代理能够处理的自然语言集(指中文或英文等)以及优先级,可多个             5.Authorization   用来告知服务器,用户代理的认证信息(证书值)。              6.Expect   客户端使用首部字段 Expect 来告知服务器,期望出现的某种特定行为。              7.From   用来告知服务器使用用户代理的用户的电子邮件地址 也可用User-Agent首都字段              8.Host   请求资源所在的服务器,多个虚拟主机运行在同一个 IP 上,因此使用首部字段 Host 加以区分  Host:主机名(主机名未设置,可为空)             (下方 If-xxx  附请求条件,服务器判断条件,只有为真时,才会执行请求。)              9.If-Match   比较标记实体ETag,只有当值一致时,才会接受请求。              10.If-Modified-Since :时间   确认本地资源有效性,如果在 If-Modified-Since 字段指定的日期时间后,资源发生了更新,服务器会接受请求              11.If-None-Match   只有在 If-None-Match 的字段值与 ETag 值不一致时,可处理该请求。与 If-Match 首部字段的作用相反              12.If-Range   它告知服务器若指定的 If-Range 字段值(ETag 值或者时间)和请求资源的 ETag 值或时间相一致时,则作为范围请求处理。反之,则返回全体资源。              13.If-Unmodified-Since :时间   告知服务器,指定的请求资源只有在字段值内指定的日期时间之后,未发生更新的情况下,才能处理请求。与If-Modified-Since相反              14.Max-Forwards : 数字   最大传输逐跳数,每次转发数值减 1,当数值变 0 时返回响应              15.Proxy-Authorization   客户端告诉代理服务器认证所需要的信息,客户端与服务器之间的认证,使用首部字段 Authorization              16.Range   请求获取服务器资源的指定字节范围,服务器处理后可以206,不可以200的响应及全部资源。              17.Referer   告知服务器原始资源的URI是从哪个web页面发起的,如发给服务器,会有信息泄露的可能。              18.TE  传输编码的优先级              19.User-Agent  用于传达浏览器的种类、名称等信息。第六章 HTTP首部  (下)>>未完待续
  • [技术干货] 在逃小姐的读书笔记——《图解HTTP》第三章、第四章
    完整目录  >>哈哈,大家早安,今天又是阳光充沛,活力十足的一天,啾~    第三章:HTTP报文内的HTTP信息        HTTP报文             HTTP报文是由多行数据构成的字符串文本,是用于HTTP协议交互的信息             HTTP报文结构:(报文首部+空行(CR+LF)+报文主体(非必要))             报文首部组成:请求行、状态、首部字段、其他    编码提升传输速率             报文:是HTTP通信中的基本单位,由8位组字节流组成。             实体:作为请求或相应时的有效荷载数据(补充项)被传输,其内容由实体首部和实体主体组成。             *通常,报文主体等于实体主体。只有当传输中进行编码操作时,实体主体的内容发生变化,才导致它和报文主体产生差异。             内容编码:将实体信息原样压缩变小后发送(类似于邮件中压缩文件,附件发送)             常用内容编码:gzip、compress、deflate、identity    分块传输编码             将实体主体分割变小后再发送,以让浏览器可以逐步显示画面    发送多种数据的多部分对象集合             MIME (多用途因特网邮件)扩展中会使用一种称为多部分对象集合(Multipart)的方法,来容纳多份不同类型的数据。如邮件中可处理文本、图像、视频等不同类型的数据。             使用多部分对象集合,需要在首部字段中加上Content-type    获取部分的请求范围             指定下载的请求范围,从下载中断处恢复下载。如果无法响应范围请求,会回复完整内容。用首部字段range指定组员范围。    内容协商             相同URI,返回最合适的内容。如中英文界面对应返回             内容协商技术类型:                            (1)服务器驱动协商:以请求的首部字段为参考,在服务器端自动处理                            (2)客户端驱动协商:用户从浏览器显示的可选项列表中手动选择                            (3)透明协商(结合前两种)     第四章:返回结果的HTTP状态码    状态码:描述返回的请求结果 (组成:3位数字+原因短语) 类别原因短语1XXInformational(信息性状态码)接收的请求正在处理2XXSuccess(成功状态码)请求正常处理完毕3XXRedirection(重定向状态码)需要进行附加操作以完成请求4XXClient Error(客户端错误状态码)请求报文中存在语法错误,服务器无法处理5XXServer Error(服务器错误状态码)服务器处理请求出错 2xx成功200OK成功,正常处理204No Content请求成功处理但是无资源可返回,显示页面不发生更新206Partial Content有范围请求,并成功执行3xx重定向301Moved Permanently永久性重定向,表示请求的资源已被分配了新的URI,对方需更新使用的URI302Found临时性重定向,表示请求的资源已被分配了新的URI,用户(本次)使用新的 URI 访问303See Other同302,但是明确要求客户端用GET方法获取资源304Not Modified客户端发送附带条件的请求,服务器端允许请求访问资源,但未符合条件的情况307Temporary Redirect同302,但禁止将 POST 方法改变成 GET 方法,遵照标准执行*301、302 标准是禁止将 POST 方法改变成 GET 方法的,但实际浏览器都会把POST改成GET,并删除报文内主体,重新发送请求。4xx客户端错误400Bad Request表示请求报文中存在语法错误401Unauthorial有认证信息,第1次请求返回认证界面,第2次请求,表示认证失败403Forbidden服务器拒绝请求资源(包括权限问题)404Not FoundNot found,服务器上没有请求的资源5xx服务器错误500Internal Server Error执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的故障503Service Unavailable服务器暂时处于超负载或正在进行停机维护的状态,无法处理请求下一章:与HTTP协作的web服务器———————————————————————————————————书本上的状态码整理在这里,大家日常还经常遇到哪些状态码?它们又代表哪些含义呢?欢迎大家在下方评论区补充分享!
  • [行业资讯] 我国移动物联网终端用户达13.6亿
    截止到9月底,全国移动物联网终端用户达到13.6亿;窄带物联网(NB-IoT)已在水表、燃气表、消防烟感和电动自行车防盗4个行业实现千万级规模连接……这是记者从近日举行的“2021江西国际移动物联网博览会”上获得的信息。  我国已提出建立NB-IoT、4G和5G协同发展的移动物联网综合生态体系。工信部信息通信发展司副司长刘郁林在会上介绍,从基础设施来看,NB-IoT已实现全国主要城市乡镇以上区域连续覆盖,4G网络实现全国城乡普遍覆盖,5G网络覆盖全国所有地市、超过97%的县城和40%的乡镇。截止到9月底,全国移动物联网终端用户达到13.6亿,比去年底增长了19%,形成了智能制造、智慧交通和智慧公共事业三大主要应用领域。  中国信息通信研究院副院长胡坚波说,目前NB-IoT已在水表、燃气表、消防烟感和电动自行车防盗4个行业实现千万级规模连接,智能井盖、智能门锁、追踪定位和智慧路灯等十余个行业实现超过百万级连接,未来还将更多地应用到工业互联网、车联网、远程医疗等领域。  在应用场景体验区,一些移动物联网应用成果展示让人眼前一亮。一棵科技感十足的“智慧树”,它的“树叶”由0.1毫米厚度的第三代蝉翼全柔性屏组成,可单独显示或联动所有屏幕统一显示图片、视频等内容,该屏幕经过中国计量科学研究院测试,可承受180万次0°至180°弯折。在中国联通元宇宙体验区,有一个基于元宇宙概念打造的“VR虚拟社交平台”,用户通过虚拟身份可加入集合式的VR社区,用DIY虚拟造型参与线上社交活动,体验VR巨幕影院、直播秀场、在线K歌、组队游戏等。 
  • [技术干货] 在逃小姐的读书笔记 ——《图解HTTP》第一章、第二章
    数通网络开放可编程论坛上有很多成系列的经验帖子比如AOC萌新之旅,我的编程首战手册等,写的很好我最近看了《图解HTTP》这本书,也想把书中知识点记录到贴子下,一方面加强记忆理解,一方面在看书过程中肯定各种这种,到时候也请大家帖子下多多解答指正,在此多谢!http的话,很多人推荐《图解HTTP》和《HTTP权威指南》我先下了一个《图解HTTP》的pdf文档,大家也可以下载下,网上找的很顺利就下载好了200多页,还有彩色漫画和众多案例,读起来不太累人,★★★★★推荐下面就是正式的知识梳理,但要注意这是按我个人了解去记录的,有略过的部分,详细的还得自己看书哦~~~章节基本内容链接第一章:了解web及网络基础1.客户端与服务端;2.www万维网构建技术;3.tcp/ip协议族;4.相关协议:IP、TCP、DNS协议;5.客户端——服务器端通信过程;6.URI和URL;本贴第二章:简单的HTTP协议1. 请求报文和响应报文;2. 请求URI定位资源;3. 告知服务器意图的HTTP方法;4. 持久连接节省通信量;5. Cookie;本帖第三章:HTTP报文内的HTTP信息1. HTTP报文;2. 编码提升传输速率;3. 分块传输编码;4. 发送多种数据的多部分对象集合;5. 内容协商;跳转 >>第四章:返回结果的HTTP状态码1. 状态码的描述及组成;2. 2xx成功;3. 3xx重定向;4. 4xx客户端错误;5. 5xx服务器错误;跳转 >>第五章:与HTTP协作的web服务器1. 单虚拟主机多域名;2. 通信数据转发程序;3.缓存;跳转 >>第六章(上):HTTP首部(上)1. 回顾下HTTP报文结构;2. End-to-end 首部和 Hop-by-hop 首部;3. HTTP/1.1 通用首部字段;4. 请求首部字段跳转 >>第六章(下):HTTP首部(下)1. 响应首部字段;2. 实体首部字段;3. 为Cookie服务的首部字段;4. 其他首部字段跳转 >>第七章:确保Web安全的HTTPS1. http缺点;2.HTTP+加密+认证+完整性保护=HTTPS跳转 >>第八章:确认访问用户身份的认证1. 何为认证2. BASIC认证3. DIGEST认证4. SSL客户端认证5. 基于表单认证(多数)跳转 >>第九章:基于HTTP的功能追加协议1. SPDY2. SPDY3. HTTP/2.0  推进中,改善使用Web速度体验4. Web 服务器管理文件的 WebDAV跳转 >>第十章:构建Web内容的技术1.HTML 超文本标记语言2. Web的应用3. 数据分布的格式及语言跳转 >>第十一章:Web的攻击技术1.针对Web的攻击技术;2.因输出值转义不完全引发的安全漏洞3.因设置或设计上的缺陷引发的安全漏洞4.因会话管理疏忽引发的安全漏洞5.其他安全漏洞跳转 >>_________________________________________________________________________________________    第一章: 了解web及网络基础          客户端与服务端   www万维网构建技术           三个重要技术:HTML超文本标记语言、HTTP协议、URL统一资源定位符   tcp/ip协议族              通常使用的网络在此协议族的运行,HTTP是属于它内部的一个子集。4层结构,发送端在层与层传输数据是,加首部信息,接受端消去首部                        应用层应用服务,如tfp、dns、http传输层传输数据,tcp及udp 网络层数据包处理    数据链路层处理硬件部分    相关协议:Ip、tcp、dns协议           IP协议:传数据包。在利用mac地址中转时,会采用Arp协议(即地址解析协议:ip地址反查mac地址)           Tcp协议:传输层、可靠并确认数据送达(三次握手,标志—SYN及ACK)、为更容易传输大数据,会将大块数据分割成以报文段为单位的数据包。           Dns协议:从域名查找IP地址,或逆向从IP地址查找域名。   客户端——服务器端通信过程         (1)dns服务器将域名解析成ip地址;         (2)http协议表示针对目标服务器生成http请求报文;         (3)tcp协议将http请求报文进行分割;         (4)ip协议搜索地址传输;         (5)tcp协议接受报文并重组;         (6)http协议对web服务器请求的内容进行处理;   URI和URL           URI(统一资源标识符):访问资源使用的协议类型方案表示的定位标识符,标识,某一互联网资源。绝对URI格式               *登录信息(认证)是可选项。               *使用绝对URI,必须指定待访问的服务器地址。地址可以是类似hackr.jp这种可以解析的DNS,或者是IPv4或是 [0:0:0:0:0:0:0:1]用方括号括起来的IPv6地址名。           URL(统一资源定位符):标识资源地点,即访问web页面时使用的网页地址。    第二章: 简单的HTTP协议          请求报文和响应报文           请求报文:由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成。           响应报文:由协议版本、状态码(表示成功或失败的数字代码)、用以解释状态码的原因短语、可选的相应首部字段以及实体主体构成。         HTTP协议是一种不保存状态,即无状态的协议(协议对于发送过的请求或响应都不做持久化处理)。但这种不保存状态会有问题,比如要求用户登录到一家购物网站,即使他跳转到该站的其他页面后,也需要能继续保持登录状态。         解决技术:cookie   请求URI定位资源         当客户端请求访问资源而发送请求时,URI需要将作为请求报文中的请求URI包含在内。    告知服务器意图的HTTP方法         • GET:获取资源,请求访问已被URI识别的资源         • POST:传输实体主体,一般使用较多         • PUT:传输文件,类似FTP协议的文件上传,在请求报文中要包含文件内容,存到URI指定位置。自身不带验证机制,不安全。         • HEAD:获得报文首部(和GET一样,但是不返回报文主体,只为确认有效性及资源更新日期)         • DELETE:删除文件。自身不带验证机制,不安全。         • OPTIONS:查询针对请求URI指定的资源支持的方法(客户端问服务器端支持哪些方法,服务器端回答)         • TRACE:**路径,发送请求时,在 Max-Forwards 首部字段中填入数值,每经过一个服务器端就将该数字减 1, 0 时,停止传输。不常用,会导致XST跨站**攻击。         • CONNECT:用建立隧道的方法进行通信,常用SSL(安全套接层)和TSL(传输层安全)协议加密。    持久连接节省通信量       初始版本,每建立tcp连接,进行一次HTTP通信后,都要断开TCP连接。       持续连接:只要任意一端不断开连接,则保持TCP连接状态,进行多次请求和响应交互,减小开销,提升web页面显示速度。使管线化的发送方式成为可能。(管线化:同时并行发送多个请求,而不必等待收到响应后再发送请求。)    Cookie       解决HTTP无状态协议       通过在请求和相应的报文中写入Cookie信息来控制客户端的状态。       从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie,下次客户端发送请求,服务器端发现cookie,检查相应的客户端连接请求,对比服务器上记录,得到之前状态信息。下一章:HTTP报文内的HTTP信息———————————————————————————————————《图解HTTP》是很好的入门书籍,通俗易懂,那么今天结束时也向大家提出一个疑问:哪些方向的职业会需要http的知识?有没有必要深入学习了解http?请大家根据自己的理解在评论区留言吧!
  • [问题求助] esp8266 AT指令HTTP连接后台服务器问题
    【功能模块】esp8266 【操作步骤&问题现象】1、在开发过程中我需要通过HTTP协议连接我的后台服务器进行通信,但在esp8266 AT指令集中,只提供了TCP/IP的通信接口,但我的服务器地址不是IP地址(AT指令只支持IP地址),而是网址,,求助各位大神,此种情况我该怎么解决2、【截图信息】【日志信息】(可选,上传日志内容或者附件)