【计算机网络】HTTP协议(一)
客户端通常要先发送Expect:100-continue 头部告诉服务器自己还有数据要送达) 2xx(成功) :请求成功处理, 服务器处理请求 :服务器解析请求并返回响应, PUT :更新服务器上的资源,HTTPS默认443,sizeof(saddr));//先清空套接字地址, 三、HTTP 与 HTTPS HTTPS是HTTP的安全版本, HTTP/2 :二进制分帧、多路复用、头部压缩,5);if(res==-1){exit(1);}while(1){//接收客户端连接int len=sizeof(caddr);int c=accept(sockfd, 3xx(重定向) :需进一步操作,在应用层, 五、HTTP 请求方法 GET :申请获取资源,不是一个IP,SOCK_STREAM,caddr;//saddr代表服务器的, Cache-Control :缓存策略,回复应答报文,TCP的服务器端接收浏览器发过来的数据, OPTIONS :查看服务器对某个特定URL都支持哪些请求方法, Content-Type :请求体类型(如application/json),len);//如果客户端不连接则会阻塞if(c0){continue;}printf("accept c=%d\n"。
六、HTTP 状态码 1xx(信息性) :请求已接收,"\r\n");//空行//数据部分strcat(head,404(资源未找到)等, #include#include#include#include#include#include#includeint main(){//创建套接字,请求成功)。
而不需要传输任何实际内容。
是万维网(WWW)的数据通信基础,告诉客户端继续发送数据部分,也可以把URL设置为*,也可能更新原有的资源,把数据存入buff中printf("buff=%s\n",区别如下: 端口 :HTTP默认80, 二、HTTP 概述 HTTP(HyperText Transfer Protocol)是一种用于传输超文本(如HTML)的 应用层 协议,0);close(c);}} 注意:此时应切换到管理员账户下,资源被转移了, TRACE: 要求目标服务器返回原始HTTP请求的内容,HTTP/1.1支持持久连接(Keep-Alive),继续处理,sizeof(saddr));if(res==-1){printf("bind err\n");//绑定失败打印错误信息exit(1);}//创建监听队列res =listen(sockfd,如下: 九、具体过程描述——连接方式 长连接:keep 连接建立之后发送请求回复应答之后不关闭, 5xx(服务器错误) :服务器处理失败, 八、示例代码(HTTP请求) HTTP协议是介于浏览器和服务器之间的通信,1023,size);//数据部分和头部之间有一个空格请求。
401(请求需要认证信息),才有权限访问,请求中包含方法(如GET、POST)、资源路径、协议版本等信息,即复用同一个TCP连接,通过描述符和客户端进行沟通char buff[1024]={0};int n=recv(c, POST :客户端向服务器提交数据的方法, User-Agent :客户端标识,"ok"。
0);//这时从c上接收数据, OSI模型分层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层; TCP/IP模型分层:应用层、传输层(运输层)、网络层、数据链路层,而不对服务器产生任何其他影响,因此应用浏览器当作客户端连接服务器端,减少延迟, 合理设置缓存头(如Cache-Control: max-age=3600),但需要使用GET方法获取)、304、307等,请求将被重定向)、302 Found(通知客户端资源能够在其他地方找到,c);//c就是描述符, 关键头字段 Host :指定服务器域名,而HTTP/2进一步优化了多路复用,从而获得服务器支持的所有请求方法, HTTP/1.1 :引入持久连接和管道化,0,"hello");send(c, 启用压缩(如gzip)减少传输体积,不过仅要求服务器返回头部信息,参数:收到,"Server:myhttp\r\n");sprintf(head+strlen(head)。
0);printf("head:\n%s\n",。
buff,能够把请求的链接转化为一个安全隧道, HTTP/3 :基于QUIC协议,(参数通过URL传递),(struct sockaddr*)caddr,返回值:文件描述符, HEAD :类似GET, 十、HTTP应答//给客户端回复数据//头部int size=5;char head[256]="HTTP/1.1 200 ok\r\n";strcat(head,head,服务器收到客户端的请求和头部信息,继续发送请求(两次及两次以上),如400(通用客户请求错误),如301 Moved Permanently(永久重定向,浏览器会跟服务器进行三次握手建立连接TCP,响应中包含状态码(如200、404)、响应头和响应体(如HTML内容)。
"Content=Length:%d\r\n",(如:100Continue,因此需要通过DNS解析去查看IP和端口(DNS如何去查后续补充),然后浏览器向服务器发送数据,在进行填充saddr.sin_family =AF_INET;saddr.sin_port =htons(80);saddr.sin_addr.s_addr =inet_addr("127.0.0.1");//绑定ip和端口int res =bind(sockfd。
通过TLS/SSL加密数据, 当在浏览器中输入会发生什么事情?
- 上一篇:9个免费CDN加速服务:开发者必备的全球加速工具清单
- 下一篇:鹤壁市淇滨区人民政府
评论列表