2018-2019-1 20165336 《信息安全系统设计基础》第八周学习总结

2018-2019-1 20165336 《信息安全系统设计基础》第八周学习总结

1.学到的知识点

  • HTTP的响应码200表示处理成功,响应码501表示服务器端错误,不支持请求的方法,可以用telnet充当Web服务器的客户端进行调试
  • Web服务器可以提供静态和动态内容,Web服务器返回的静态内容由URL标识,最小的URL后缀“/”,会被扩展成类似“/index.html”的默认主页
  • WEB服务器以两种不同的方式向客户端提供内容:取一个磁盘文件(静态),运行一个可执行文件(动态内容)。
  • echo服务器一次只能处理一个客户端,称为迭代服务器。该服务器为客户端服务。
  • open_clientfd()只可以用于客户端编程。
  • open_listenfd()只可以用于服务器端编程
  • open_clientfd()中的port参数是服务器端的端口
  • open_clientfd()返回的clientfd可以有Unix I/O接口读写
  • getaddrinfo函数将主机名,主机地址,服务名和端口号的字符串表示转化成套接字地址结构。
  • getnameinfo用来将套接字结构转化为主机信息,getaddrinfo可以用来替代gethostbyname,getnameinfo可以用来替代getservbyport,getaddrinfo必须和freeaddrinfo一起使用
  • 调用connect会发生阻塞,连接成功程序会继执行或是发生错误。调用connect()成功返回的文件描述符可以用来数据传输
  • ps -aux | grep pid可以查看绑定某端口的进程号为pid的进程的详细情况
  • 用sudo /etc/init.d/service start|stop|restart 启动|停止|重启系统服务
  • 用netstat -pa查看所有的服务端口(LISTEN,ESTABLISHED)
  • 用 echo /etc/services查看
  • 使用 netstat -pan|grep 80可以查看哪些进程占用了80端口
  • 使用lsof -i:80查看哪里些进程占用了80端口
  • .echo 服务的端口号是7,请求主机发送日期和时间的daytime服务的端口号是13,web服务器的端口号是80,SMTP服务的端口号是25,tftp服务的端口号是69,H.HTTPS服务的端口号是443,I.rsync服务的端口号是873,J.pop3服务的端口号是110,K.auth服务的端口号是113
  • 连接是点对点的,从数据可以同时双向流动的角度来说,他是全双工的。
  • 我们可以使用hostname来确定本地主机的实际域名。最简单的情况中,一个域名和一个ip地址之间是一一映射,然而在某些情况下,多个域名可以映射为同一个ip地址,在最通常的情况下,多个域名可以映射到同一组的多一个IP地址。
  • 点分十进制即每个字节由他的十进制值表示,并用句点和其他字节间分开。x86中,IP地址结构中存放的地址是大端的。调用inet_pton() 把点分十进制转为32位IP地址
  • 因特网的客户端和服务端混合使用套接字接口函数和Unix I/O函数来进行通信。
  • TCP/IP为任意整数数据项定义了统一的网络字节顺序(大端字节顺序)
  • IP协议提供基本的命名方法和传送机制,这种传送机制能够从一台因特网主机往其他主机发送包,也叫做数据包
  • 对于主机,网络又是一种I/O设备,是数据源和数据接收方。物理上而言,网络是一个按照地理远近组成的层次系统。

2.实现mypwd

1 学习pwd命令
查找相关资料得参数意义:
-L,--logical:显示当前的路径,有连接文件时,直接显示连接文件的路径,(不加参数时默认此方式),参考示例1。
-p,--logical:显示当前的路径,有连接文件时,不使用连接路径,直接显示连接文件所指向的文件,参考示例2。 当包含多层连接文件时,显示连接文件最终指向的文件,参考示例3。
--help:显示帮助信息。
--version:显示版本信息。

2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码

  • 伪代码
#include<stdio.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<dirent.h>
#include<stdlib.h>
#include<string.h>
int main(){
定义变量;
if(当前i节点".."不等于"."){
while(当前i节点".."不等于".")){
opendir(".");
readdir(".");
printf("当前路径名");
closedir(".");
}
else{
opendir(".");
readdir(".");
printf("当前路径名");
closedir(".");
}
}

3 实现mypwd

码云链接

4 测试mypwd

posted @ 2018-11-25 19:10  20165336康志强  Views(126)  Comments(0Edit  收藏  举报