当前位置: 首页 > news >正文

完全免费空间网站建设一个朋友的网站

完全免费空间网站,建设一个朋友的网站,wordpress新闻墙插件,贵阳网站推广五、市面上常用序列化和反序列化工具 ​ 常用的有#xff1a;json、protobuf、xml三种方案#xff1b; 5.1json的使用 1.安装jsoncpp库#xff0c;是一个第三方的开发库文件#xff1b; sudo yum install -y jsoncpp-devel2.使用json ​ 经常使用的头文件是json.hjson、protobuf、xml三种方案 5.1json的使用 1.安装jsoncpp库是一个第三方的开发库文件 sudo yum install -y jsoncpp-devel2.使用json ​ 经常使用的头文件是json.h ​ 使用的动态库文件 3.json语法 #include jsoncpp/json/json.h//序列化//1.创建Value对象 Json::Value root; //Value是万能类重载了[]返回值是Value对象引用它的内部是一堆kv的形式甚至可以放Value //root.size()是根据k来划分的//2.设置Value root[x] 100; root[y] 200; root[op] ; root[desc] this is a add algorithm;//3.序列化Value //有两种方式 //3.1对象实例化 Json::FastWriter w Json::StyledWriter w//好处是可读性更好一些 //3.2进行序列化 w.write(root); //一个参数为Value对象 std::cout root std::endl; std::cout w.write(root) std::endl;//4.反序列化Value //4.1创建Value缓冲区和reader对象 Json::Value v; Json::Reader r; //4.2进行反序列化 r.parse(str,v) //第一个参数是要进行反序列化的字符串 //第二个参数是缓冲区 //第三个参数表示是否有效默认使用缺省参数//5.将Value对象解析成有效对象使用as系列转换成有效的数据 int x v[x].asInt(); int y v[y].asInt(); char op v[op].asInt(); std::string desc v[desc].asCString(); std::cout desc x op y std::endl;六、重谈ISO7层模型 6.1会话层 ​ 实际上在代码当中体现为tcp服务端和客户端获取连接和发起连接负责管理好连接 6.2表示层 ​ 其实就是指定制协议与序列化和反序列化数据在网络中的转化 6.3应用层 ​ 针对特定应用的协议 七、http协议 7.1统一资源定位符 ​ 在平常的生活中访问服务器其实使用的不是IP地址而是域名这样的东西域名的作用就是提高用户的体验直接使用IP地址可读性较差使用域名间接转换为IP地址这种方式可读性更好更容易让人们接受这种使用方式 ​ 在浏览器中网址位置输入IP地址会自动将39.156.66.14IP地址添加一些字段变为http /39.156.66.14/浏览器中默认使用的协议一般是http或者https会默认进行拼接的这些协议服务的端口号一般是得固定下来如http是80https是443所以在拼接协议字段的时候是默认增加了端口号的 ​ url叫做统一资源定位符由协议(服务的端口号)域名(远端主机的IP地址)资源路径使用统一资源定位符通过唯一路径定位就可以在网上找到资源其实就是在远端的主机上使用服务进程并通过资源路径来查找主机内的资源 ​ 网络行为一般有两种1.下载2.上传 ​ 使用kv这种形式来提交参数多个参数可以使用来进行划分支持多参数提交 7.2urlencode和urldecode ​ 在使用url的时候少量的情况会将提交或者获取的数据(可能包含和url中特殊字符冲突的字符)要求浏览器和服务器双方之间要进行编码(encode)和解码(decode) ​ 编码和解码防止和数据和url本身冲突 ​ 编码的规则是将需要转码的字符(在ASCII码中对应一个数一个字节大小)转换为16进制然后从右向左取4位不足4位的每两位为1位在前面加上%编码成%xy的形式 ​ 网上也有在线进行编码和解码的工具 7.3http请求和响应 ​ 无论是请求还是响应都是以行的形式来陈列请求和响应 7.3.1http请求格式 ​ 由请求行、请求报文、空行、请求正文构成 请求行 ​ 1.请求行之中除了结尾是不可以再出现回车换行符的2.请求行的报头字段共有三部分第一部分是请求方法一般使用两种一种叫做get方法一种叫做post方法第二部分以空格作为分隔符和第一部分区分具体内容是URL表示当前当前要请求的资源是谁第三部分和第二部分也是使用空格作为分隔符叫做请求的协议版本即http版本包括1.0 1.1 2.0格式为http/1.1注意需要是大写的 请求报文 ​ 由多行构成每一行都叫做http的请求属性这些属性大部分是键值对的形式 空行 ​ \r\n在行的最开始位置通过行读取的方式将报头和有效载荷分离 请求正文 ​ 要上传的内容 ​ 无法保证读到完整的正文但是可以保证读到完整的请求报头而报头的属性有 表示正文长度的字段然后根据此属性读到一个完整的报文 7.3.1http响应格式 ​ 与请求类似 状态行 ​ 包括三部分第一部分http版本(便于进行划分功能)第二部分状态码第三部分为状态码描述如404 Not Found对于请求必须有响应 7.4使用工具进行http响应的抓取 1.telnet telnet www.baidu.com 80​ 最简单的请求报头和报文是可以没有的但是请求行和空行必须有所以如下操作之后即可获得一个响应 GET / HTTP/1.1 ​ 如下就是一个响应报文 2.fiddler ​ 基于http进行抓包fiddler工具就是一种代理本来是浏览器访问服务器变成了fiddler工具代理进行请求包装和获取响应然后再返回给浏览器 3.postman ​ 当成浏览器使用 7.5实现一个简单的http服务 #include sys/types.h #include sys/socket.h ssize_t recv(int sockfd, void *buf, size_t len, int flags); ssize_t send(int sockfd, const void *buf, size_t len, int flags); //也可以用来进行tcp读取 //与read类似多了第四个参数可以设置读取的方式 //0表示阻塞的方式#pragma once#include iostream #include string #include pthread.h #include unistd.h #include Socket.hpp #include Log.hppconst uint16_t defaultport 8888; class threadinfo { public:threadinfo(int sockfd) : sockfd_(sockfd) {}public:int sockfd_; };class httpserver { public:httpserver(uint16_t port defaultport) : port_(port) {}~httpserver() {}public:static void httphandler(int sockfd){char buff[10240];ssize_t n recv(sockfd, buff, sizeof(buff) - 1, 0);if (n 0){buff[n] 0;std::cout buff;// 返回一个响应std::string text htmlbodyh3hello world/h3/body/html;std::string response_line HTTP/1.0 200 OK\r\n;std::string response_header Content-Length: ;response_header std::to_string(text.size());response_header \r\n\r\n;std::string response;response response_line;response response_header;response text;send(sockfd, response.c_str(), response.size(), 0);}close(sockfd);}static void *routine(void *args){pthread_detach(pthread_self());threadinfo *hs static_castthreadinfo *(args);httphandler(hs-sockfd_);delete hs;return nullptr;}bool start(){listensockfd_.Socket();listensockfd_.Bind(port_);listensockfd_.Listen();// lg(Info, init done...);while (true){std::string clientip;uint16_t clientport;int sockfd listensockfd_.Accept(clientip, clientport);if (sockfd 0)continue;pthread_t tid;threadinfo *td new threadinfo(sockfd);pthread_create(tid, nullptr, routine, (void *)td);}}private:uint16_t port_;Sock listensockfd_; }; ​ 1.可以通过User-Agent来设计反爬策略2.浏览器下载app通过User-Agent的属性来推送相关系统的软件 ​ http对于请求会创建一个响应添加报头、空行和正文包括将网页拼接到正文部分发送过来的请求可能会包含请求什么网页什么资源通过url呈现出来 7.6web根目录 ​ wwwroot是web根目录存放了允许别人访问的所有资源 ​ 可以直接在本地修改文件通过浏览器直接访问到修改后的结果
http://www.pierceye.com/news/10442/

相关文章:

  • 什么是网站接入商云服务器 能用来做网站吗
  • 外贸网站制作教程沛县网站定制
  • 博客网站设计方案基层建设杂志网站
  • 湛江专业的免费建站做网站的图片的内存
  • 深圳市做网站知名公司有哪些wordpress 首页进不去
  • 建个人博客网站建设电商网站哪个平台比较好
  • 博物馆网站微信公众号建设方案软文推广图片
  • 网站服务器放置地wordpress添加html菜单
  • 一起做网站17郑州建设网站企业
  • 洛阳建站洛阳市网站建设团购网站做摄影
  • 域名访问网站啥意思营销型网站模板展示
  • 公司网站域名 优帮云企业营销网站案例
  • 北京住房投资建设中心网站首淄博网站推广那家好
  • 康定网站建设工作室apache创建WordPress
  • 天长街道两学一做网站wordpress账户插件
  • 漯河做网站推广福步论坛外贸交流手机版
  • 模板网站音响案例西安cms建站模板
  • 网站建设网络推广wordpress安装 后
  • 租房网站那些地图区域统计怎么做的傻瓜式建站平台
  • 网站做兼容需要多少钱企业网站制作 深圳
  • 楼梯 技术支持 东莞网站建设无锡做网络推广的公司
  • 江门市智企互联网站建设创建一个自己的公司的英文
  • 站内seo的技巧完整网站建设案例教程
  • 红安建设局网站一元云购网站开发
  • 网站乱码解决办法设计软件培训机构排行榜
  • 电子商务网站开发报价临沂网站开发公司电话
  • 拖拽建站系统源码优惠网站代理怎么做
  • 有没有正规的毕设代做网站wordpress分类目录keyword
  • 网站模板代理青岛外贸网站建站
  • 不动产登记网站建设gta5网站建设中什么意思