应用层:HTTP协议:1. 万维网WWW(World Wide Web)世界范围内的,联机式的信息储藏所。 万维网解决了获取互联网上的数据时需要解决的以下问题:1)怎样标识分布在整个互联网上的文档 URL2)用什么样的协议实现万维网上的各种链接 HTTP3)怎么使用户能够方便的查看文档数据 HTML 2.URL统一资源定位符表示从因特网上得到的资源位置和访问这些额资源的方法。格式:<协议>://<主机>:<端口>/<路径>端口一般80可省略3.HTTPHyperText Transfer Protocol超文本传输协议超文本:集文字,图像,音频,链接等于一体的文本应用层1. HTTP工作过程:1)建立TCP连接2)客户端向服务器发送HTTP请求报文3)服务器向客户端发送HTTP响应报文4)释放TCP连接2.HTTP报文格式请求报文:请求行、消息报头、请求正文响应报文:状态行、消息报头、响应正文3.请求方式GET 请求获取Request-URI所标识的资源POST 在Request-URI所标识的资源后附加新的数据HEAD 请求获取由Request-URI所标识的资源的响应消息报头PUT 请求服务器存储一个资源,并用Request-URI作为其标识DELETE 请求服务器删除Request-URI所标识的资源TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求CONNECT 用于代理服务器4.状态码1xx:指示信息--表示请求已接收,继续处理2xx:成功--表示请求已被成功接收、理解、接受3xx:重定向--要完成请求必须进行更进一步的操作4xx:客户端错误--请求有语法错误或请求无法实现5xx:服务器端错误--服务器未能实现合法的请求200 OK //客户端请求成功400 Bad Request //客户端请求有语法错误,不能被服务器所理解401 Unauthorized //请求未经授权 403 Forbidden //服务器收到请求,但是拒绝提供服务404 Not Found //请求资源不存在,eg:输入了错误的URL500 Internal Server Error //服务器发生不可预期的错误503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
4.练习——封装数据帧
nt pack_net_data(data_t data ,unsignedchar*pack){int i =0;pack[i++]=0xAA;pack[i++]=20;memcpy(&pack[i],&data.temp,sizeof(data.temp));//多个字节用memcpyi+=sizeof(data.temp);memcpy(&pack[i],&data.hum,sizeof(data.hum));i+=sizeof(data.temp);memcpy(&pack[i],&data.oxy,sizeof(data.oxy));i+=sizeof(data.temp);int year = data.tim.tm_year+1900;memcpy(&pack[i],&(year),sizeof(data.tim.tm_year));i+=sizeof(data.tim.tm_year);pack[i++]= data.tim.tm_mon+1;pack[i++]= data.tim.tm_mday;pack[i++]= data.tim.tm_hour;pack[i++]= data.tim.tm_min;pack[i++]= data.tim.tm_sec;for(int j =1; j < i; j++){pack[i]+= pack[j];}i++;pack[i]=0xBB;i++;return i;}