概述
应用层协议—服务(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)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复