码迷,mamicode.com
首页 > Web开发 > 详细

http进击之apache服务器

时间:2017-10-16 23:21:03      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:linux

个把月前,阿拉在某处看到有人对大神的描述——公司内部加外援搞了几天没解决的网络问题,只见那人抓了数据包,分析出数据首部信息有误,然后用了某工具将1改成了0,遂网络恢复。

阿拉以为那是很神奇的技能。直到今天了悟,神奇的技能是人人皆能习得的。

啊呀,甚至不能说是神奇。只是算是职业素养的范畴。技术分享大概是厉害的师傅领阿拉入的门,阿拉觉得自己将会无所不能呢。

虽然讲知识的前辈多的是,阿拉就以平级的理解来说点接地气的东西吧。但愿你也能在平辈的论述中理解晦涩的言论,然后逐渐的,形成适合自己的知识探究体系。

之前阿拉写过浅谈主机间网络通信实际过程。现在看来是有诸多诟病的。知识是递进的,不是模块化的,我们总在推翻自己之前的观点,那啥,对,推陈出新,也就这么回事。啊啊,其实主要是不够完善,想来是那时候还太悠哉了,写东西也慢的不行,效率捉急0.0。

为了尽量全面,阿拉所言并不深入,甚至每个小部分深究都是大学问。这里就以宽度为主了,深度交给你。

好,来看。



PART1.Internet网络通信


套接字地址

在建立通信连接的每一端,进程间的传输要有两个标志:

IP地址和端口号,合称为套接字地址 socket address 

客户机套接字地址定义了一个唯一的客户进程

服务器套接字地址定义了一个唯一的服务器进程

IP地址确定主机,端口号确定应用程序。就像收快递有了地址的大范畴还要有手机号姓名落实到个人。

默认端口常常忽略不写。http的默认端口为80,若端口号为8080时,就要写成诸如192.168.0.10:80的形式了。


socket套接字

进程间通信IPC的一种实现,允许不同主机或同一主机上不同进程之间通信和数据交换。

Socket API(应用程序接口):封装了内核中所提供的socket通信相关的系统调用(应用程序位于用户空间,经kernel调用内存信息,然后将处理后的信息由kernel传达至应用,这一过程要使用套接字。

Socket Domain:根据所使用的地址分为

    AF_INET:Address Family,IPv4

    AF_INET6:IPv6

    AF_UNIX:同一主机上不同进程之间通信时使用(为了方便数据传输。同一主机不同进程还要跨网络的话太麻烦啦!)

Socket Type:根据使用的传输层协议

    SOCK_STREAM:流,tcp套接字,可靠传输,面向连接

    SOCK_DGRAM:数据报,udp套接字,不可靠传输,无连接

    SOCK_RAW:裸套接字,无须tcp或udp,app直接通过IP包通信(即同一主机不同进程通信使用)

技术分享

socket套接字函数:

技术分享

套接字相关的系统调用:socket():创建一个套接字;bind():绑定IP和端口;listen():监听;accept():接收请求;connect():请求连接;write():发送;read():接收;close():关闭连接。

http服务通信过程:

技术分享

URL:统一资源定位符。即浏览器地址栏的那串长长的网址。




URL组成

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

schame:方案,访问服务器以获取资源时要使用哪种协议

user:用户,某些方案访问资源时需要的用户名

password:密码,用户对应的密码,中间用:分隔

Host:主机,资源宿主服务器的主机名或IP地址

port:端口,资源宿主服务器正在监听的端口号,很多方案有默认端口号

path:路径,服务器资源的本地名,由一个/将其与前面的URL组件分隔

params:参数,指定输入的参数,参数为名/值对,多个参数,用;分隔

query:查询,传递参数给程序,如数据库,用?分隔,多个查询用&分隔

frag:片段,一小片或一部分资源的名字,此组件在客户端使用,用#分隔

http://www.magedu.com:8080/images/logo.jpg

ftp://mage:password@172.16.0.1/pub/linux.ppt

rtsp://videoserver/video_demo/

Real Time Streaming Protocol

http://www.magedu.com/bbs/hello;gender=f/send;type=title

https://list.jd.com/list.html?cat=670,671,672&ev=149_2992&sort=sort_totalsales15_desc&trans=1

http://apache.org/index.html#projects-list



必要工具包

http-tools

配置文件功能配置

(未完)

本文出自 “RightNow” 博客,请务必保留此出处http://amelie.blog.51cto.com/12850951/1972990

http进击之apache服务器

标签:linux

原文地址:http://amelie.blog.51cto.com/12850951/1972990

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!