我是靠谱客的博主 忐忑毛巾,最近开发中收集的这篇文章主要介绍网络通讯协议(TCP-UDP-HTTP),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

应用层协议—服务(dhcp, nfs, ftp, ntp, dns)
传输层协议—TCP/UDP/http
在这里插入图片描述
传输层协议:
面向连接的:TCP (Transmission Control Protocol 传输控制协议)
TCP需要在传输方和接收方之间建立虚链接,建立一个专用的虚拟的连接通道.后续的所有数据都在这个虚拟通道中传输.所以不需要封装额外的信息
互联网上百分之95的连接都属于TCP

无连接的:UDP	(User Datagram Protocol	用户数据报协议)
即时通讯软件,DNS解析等都是基于UDP实现的

应用层某一个应用要想跟其他应用建立通讯的话,为了标识俩个进程,需要基于TCP或者UDP的端口机制来标识进程自己的地址,当然也可以不通过TCP/UDP协议,自行直接通过IP报文向外发送,则其套接字由自己维护

网络套接字的类型:
TCP套接字 基于TCP协议->IP+端口
UDP套接字 基于UDP协议->IP+端口
raw套接字(由程序自身维护) Unix sock 裸套接字
CIP;CPort;SIP;SPort 这四个组合起来用来标识一个独立完整的连接,因素缺一不可

客户端与服务器端之间的通讯也遵循某些规则:
ftp client --> dhcp server 肯定是不能通讯的
程序之间为了实现某种特定应用,也必须遵循某些规范,这些规范被称为应用层协议

http:

超文本传输协议(HyperText Transport Protcol)
html:hypertext mark language(超文本标记语言)即超文本
客户端软件:Client:browser

C–>S之间如何实现通信?
URL(统一资源定位符)
相同协议的不同实现
Server:web server
httpd(apache)
Nginx
IIS
Lighttpd
反向业务代理:
负载均衡 :Nginx
轮询
加权轮询
IP hash

软件安装:

yum install httpd
rpm -ql httpd

主配置文件:/etc/httpd/conf/httpd.conf
启停脚本:/etc/rc.d/init.d/httpd
apache的站点根目录:/var/www/html
当我们访问apache服务器的时候,会默认显示html目录中的页面
若存在index.html文件则显示该文件
若不存在,则显示aoache的欢迎页面
软件启动: service httpd start
vim /var/named/lee.com.zone在这里插入图片描述

mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak

将默认的欢迎页面改名,然后重启apache服务
若存在index页面,则显示该文件
若不存在该文件,则显示文件索引
需求:
若存在index,则显示index
若不存在index则不允许访问

打开浏览器:www.192.168.88.100

httpd服务特性

1.监听套接字 vim /etc/httpd/conf/httpd.conf
Listen [IP:]port
此指令可以出现多次,用于指定监听多个不同的套接字
Listen 80
Listen 192.168.66.2:8080
2. service httpd restart
3. netstat -tunpl | grep httpd
去网页访问

2.配置使用Keepalive机制 vim /etc/httpd/conf/httpd.conf
1.约束最大传输的文件数10
2.约束超时时间5M
KeepAlive {On|Off}
KeepAliveTimeout 2 超时时间
MaxKeepAliveRequests 50 最大请求个数
-这个数值的设置需要根据实际情况调整并测试性能

3.配置站点根目录 vim /etc/httpd/conf/httpd.conf
DocumentRoot “/var/www/html”
//这个目录中的文件并非就能够正常被访问

通常站点根目录下面的网页文件,还要定义它们的访问属性,
因此与之配合的容器就是

定义关于根目录的访问权限,就要使用Directory 了

4.页面访问属性
<Direcotry “/path/to/somewhere”>
Options 选项,来定义访问方式的
Indexes–>缺少指定的默认页面时,允许将目录中的所有文件以列表形式返回给用户:危险:慎用
FollowsymLinks–>允许跟随符号链接所指向的原始文件 ,危险
None 所有都不启用
All 所有的都启用
SymLinksIfOwnerMatch 在链接文件属主属组与原始文件的属主属组相同时,允许跟随符号连接所指向的原始文件
AllowOverride

5.基于主机的IP访问控制
<Direcotry “/path/to/somewhere”>
Options
AllowOverride
//表示底下的这种基于IP的访问控制机制是否被禁用,

 None 不禁用下面
 
 order+次序,写在后面的为默认法则
    allow,deny: 没有允许的都拒绝
    deny,allow:没有拒绝的都允许
    Allow from
    Deny from
</Direcotry>

定义黑白名单:
白名单: Order allow,deny(除了我允许的,其他都拒绝)
allow from 192.168.88.0/24
黑名单: Order deny,allow(除了我拒绝的其他都拒绝)
deny from 192.168.88.0/24

6.定义默认主页面
DirectoryIndex 依次查找
DirectoryIndex index.html index.html.var
当用户访问的时候,搜索指定路径下有没有上述的文件
去检查welcome.conf 若该文件存在,则显示欢迎页
检查indexes选项是否设置
已设置–>显示文件索引
未设置–>forbidden

7.用户目录
如果期望让每个用户都可以创建个人站点:http://Server_IP/~Username/
userdir disabled:禁止用户使用个人站点
userdir dir_name: dir_name是用户家目录下的目录名称,所有位于此目录中的文件均可通过前述的访问路径进行访问
用户的家目录得赋予进行httpd进程的用户(通常是apache)拥有执行权限
setfacl -m u:apache:x 用户家目录

8.路径别名
Alias “/hahaha” “/tmp/test”
意味着访问http://Server_IP/hahaha时,其页面文件来自于/tmp/test目录中

最后

以上就是忐忑毛巾为你收集整理的网络通讯协议(TCP-UDP-HTTP)的全部内容,希望文章能够帮你解决网络通讯协议(TCP-UDP-HTTP)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部