要协议一个web服务器,需要了解http协议,下面我们来看一下当浏览器请求网张的时候向web服务器发送的数据,我使用的是ubuntu 中telent展现一个下过程。我需要一个简单的网站来演示一下,我装了一个apache。来完成成这个过程。下面为过程展示。   其实,访问一个网站就是浏览器web服务器指定端口发送信息,然后,web服务器向浏览器发送网页的内容,1。使用telnet连接网站

2.输入请求的页面。 GET  /   HTTP/1.0 或者 GET /index.html  HTTP/1.0

get:表示使用的get方法来获取网站的内容了

/:表示请求的为根目录,默认文件(有网站的配置文件决定)。 /index.html表示网站根目录下的index.html文件

HTTP/1.0:表示使用的是HTTP1.0的协议

三个参数用空格分开

3.apache返回的结果

上面是一个http协议一个交互的协议,如果要深入了解请上网查找资料。

下面我们自己写一个程序看一下当浏览器连接的时向web服务器发送的信息。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>

#define MAX 1024
//监听指定ip的端口
int socket_listen( char *ip, unsigned short int port)
{
 int res_socket, res, on;
 struct sockaddr_in address;
 struct in_addr in_ip;
 res = res_socket = socket(AF_INET, SOCK_STREAM, 0);
 setsockopt(res_socket, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
 memset(&address, 0, sizeof(address));
 address.sin_family = AF_INET ;
 address.sin_port =htons(port);
 address.sin_addr.s_addr = htonl(INADDR_ANY); //inet_addr("127.0.0.1");
 res = bind( res_socket, (struct sockaddr *) &address, sizeof( address ) );
 if(res) { printf( "port is used , not to repeat bind\n" ); exit(101); };
 res = listen(res_socket,5);
 if(res) { printf( "listen port is error ;\n" ); exit( 102 );  };
 return res_socket ;
}

int main(int argc, char * argv[] )
 { 
 int res_socket, conn_socket;
 int tmp ;
 struct sockaddr_in client_addr;
 char buf[MAX];
 int len = sizeof(client_addr);
 res_socket = socket_listen( "127.0.0.1", 1024) ;
 while(1)
 {
  conn_socket = accept( res_socket, (struct sockaddr * )&client_addr, &len );
  printf("webbrower information\n\n");
  //接受来自浏览器的信息
  while(0 == (tmp = read( conn_socket, buf, MAX-1) ) || tmp != EOF )
  {
   buf[MAX-1]=0;
   printf("%s\n", buf);
   break;
   } 
  close(conn_socket);
   }

}

下面为接收到的信息。

转载自:http://m.blog.csdn.net/blog/rentiansheng/8068960

自己动手写web服务器一(浏览器的访问信息)相关推荐

  1. 网页从web服务器受到的威胁,网页从web服务器方面浏览器方面受到的威胁主要来自哪里...

    网页从web服务器方面浏览器方面受到的威胁主要来自哪里 关注:117  答案:2  信息版本:手机版 解决时间 2019-01-14 09:04 情歌越听越心酸 2019-01-13 09:14 网页 ...

  2. 【生生不息原创】自己动手写Web自动化测试框架3 - 操纵Web控件

    原创:http://www.colblog.net/node/136 上面的两次课程我们介绍了mshtml和SHDocVw的一些用途,以及如何打开并且附加到IE上,实现IE的宏观上的控制. 这次我们将 ...

  3. 群晖NAS搭建web服务器并公网可访问 2-4

     系列文章 群晖NAS搭建web服务器并公网可访问 1-4 群晖NAS搭建web服务器并公网可访问 2-4 群晖NAS搭建web服务器并公网可访问 3-4 群晖NAS搭建web服务器并公网可访问 4- ...

  4. 使用docker搭建web服务器,提示无法访问此网站,怎么解决

    使用docker搭建web服务器,提示无法访问此网站,怎么解决 首先看容器是否起来: 正确如下图 如果没启动 docker ps -a查到容器 docker start 容器名 启动容器 如果没运行: ...

  5. 群晖NAS搭建web服务器并公网可访问 1-4

    系列文章 群晖NAS搭建web服务器并公网可访问 1-4 群晖NAS搭建web服务器并公网可访问 2-4 群晖NAS搭建web服务器并公网可访问 3-4 群晖NAS搭建web服务器并公网可访问 4-4 ...

  6. 群晖NAS 7.X搭建本地web服务器并实现公网访问 1/3

    系列文章 群晖NAS 7.X搭建本地web服务器并实现公网访问 1/3 群晖NAS 7.X搭建本地web服务器并实现公网访问 2/3 群晖NAS 7.X搭建本地web服务器并实现公网访问 3/3 随着 ...

  7. url能访问但new file()找不到文件_Go Web编程给自己写的服务器添加错误和访问日志...

    错误日志和访问日志是一个服务器必须支持的功能,我们教程里使用的服务器到目前为止还没有这两个功能.正好前两天也写了篇介绍logrus日志库的文章,那么今天的文章里就给我们自己写的服务器加上错误日志和访问 ...

  8. Go Web编程--给自己写的服务器添加错误和访问日志

    错误日志和访问日志是一个服务器必须支持的功能,我们教程里使用的服务器到目前为止还没有这两个功能.正好前两天也写了篇介绍logrus日志库的文章,那么今天的文章里就给我们自己写的服务器加上错误日志和访问 ...

  9. 自己动手写RTP服务器——关于RTP协议

    本文会带领着你一步步动手实现一个简单的RTP传输服务器,旨在了解RTP流媒体传输协议以及一些关于多媒体编解码的知识. 关于RTP协议的必备知识 要动手实现一个协议,当然首先需要阅读该协议的文档.RTP ...

最新文章

  1. ARM嵌入式操作系统启动
  2. jdbc连接oracle rac服务器
  3. html制作背景音乐,HTML插入背景音乐方法【全】
  4. python接入微信公众号_Python学习之微信公众号接入 一 验证
  5. delphi 中的dll编程注意事项
  6. Python 分析天气,告诉你中秋应该去哪里
  7. java三层架构是不是策略模式,把「策略模式」应用到实际项目中
  8. poj 3411 Paid Roads (dfs)
  9. PHP环境搭配(二):lamp(linux+apache+mysql+php)搭建,附moodle与onlinejudge配置
  10. uvccamera 后台服务_UVCCamera的一些坑
  11. 猫哥教你写爬虫 004--数据类型转换-小练习
  12. C语言和设计模式(工厂模式)
  13. php 数据 缓存,php终极数据缓存,比redis、GlobalData等快200倍以上,极致性能
  14. Flutter代码锦囊---摇一摇
  15. 《Android游戏开发详解》一2.9 类
  16. win10 家庭版系统,创建用户(users\account\ 中,文件的「所有者」属性)
  17. 天玑800处理器支持鸿蒙系统吗,为何Redmi Note 9选择天玑800U处理器?和骁龙750G差距多大...
  18. 初识视觉SLAM:用相机解决定位和建图问题
  19. 【MyBatis】bind标签
  20. Bitmap 图片说明

热门文章

  1. [bzoj2882]工艺_后缀数组
  2. LibreOJ #6002. 「网络流 24 题」最小路径覆盖
  3. mac os系统使用Visual Studio Code打开浏览器查看HTML文件
  4. servlet 初步 (四) session
  5. html 8 盒子的background 颜色的面积
  6. javascript ||用法
  7. 小议Linux staging tree
  8. 实战小技巧系列(4):WinForm简单步骤制作
  9. 你不知道的APP色彩跟产品场景的关联因素(干货多图)
  10. python 集合