在输入网址后,浏览器做的事情
1、域名解析
2、三次握手建立连接
3、浏览器给web服务器发送请求报头
4、web服务器给浏览器回复应答报头和应答数据(html页面)
长连接:当关闭浏览器后才执行四次挥手
短连接:每发一次数据就三次挥手和四次握手一次
使用Linux来模拟web服务器
得使用root用户,因为端口80是属于系统的端口号,0-1023是系统预留端口。
web服务器的C语言实现
因为是TCP服务器首先得
初始化socket
1 | int InitSocket() |
获取连接
1 | struct sockaddr_in cli; |
接受数据(接受请求报文段)
1 | int RecvData(int c, char *file_name) |
发送数据
1 | //发送头部信息 |
整体代码
1 |
|
测试
首先运行编译后的程序
然后开个浏览器,输入”127.0.0.1/index.html”
我这的浏览器是空白是因为我自己的index.html文件里面是空白,没有自己写,如果自己写一点前端的东西,浏览器也会显示,并且web服务器在收到报头之后打印了收到的报文段