网络通信协议:
TCP/IP四层:应用层、传输层、网络层、链路层;
应用层:HTTP\FTP等协议;FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递的命令;另一个是数据链路,用来上传或下载数据。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式
PORT: 客户端向FTP端口(默认21)发送请求时,,服务器接受连接,建立一条命令链路。当需要传输数据时,客户端在命令链路用PORT命令告诉服务器,然后服务器建立一条数据链路传输数据;
PASV: 客户端向FTP端口(默认21)发送请求时,服务器接受连接,建立一条命令链路。当需要传输数据时,服务器在命令链路用PASV命令告诉客户端,客户端建立一条数据链路出书数据
HTTP协议:超文本传输协议区别在于一个用于传输文件一个用于浏览网站,无状态协议;
cookie和seesion的区别:cookie以文本文件的格式存储在客户端,session存储在服务端;cookie有文件大小限制,session更安全;http发送请求后,服务器生成cookie,客户端携带cookie,服务端解析成功获取客户端信息;http发送请求后生成seesionID并写入客户端,通过提取客session id 服务端通过sessionid 获取客户信息达到访问;
服务端通过
dopost和doGet的区别: dopost 可以将携带信息隐藏起来没有大小限制,get会暴露一些
URL:协议方案名(http://)-用户名:密码(登录信息认证user:pass)-服务器地址:(www.baidu.com)-:80端口号/带层次的文件路径-?查询字符串-标识符;
知名端口号:
ssh: 22端口
ftp:21端口
telent: 23端口
http: 80端口
https: 443端口
一个进程可以bind 多个端口号,一个进程可以打开多个文件描述符,每个文件描述对应一个端口。多个进程不能bind一个端口号,进程先绑定一个端口号,在fork一个子进程可以实现多个进程绑定一个端口号,但是两个不同的进程不能绑定同一个端口号
linux查询知名端口号: cat/etc/servives
传输层:TCP、UDP协议
TCP:有连接、可靠传输、面向字节流;
ServerSocket
Socket
UDP:无连接、不可靠传输、面向数据报
DatagramPacket ,DatagramSocket
网络层:IP、ICMP、IGMP协议
链路层:驱动程序、接口