基础知识
html,全称为html markup language,超文本标记语言。
http,全称hyper text transfer protocol,超文本传输协议。用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。
客户端请求的格式:
请求方法有:GET、POST等。URL:请求地址。协议版本:HTTP的版本。
服务器响应的格式:
----- | 响应代号 | 代号描述 |
---|---|---|
服务器上存在请求的内容,并可以响应给客户端 | 200 | OK |
客户端的请求有异常,方法有问题 | 501 | Method Not Implemented |
服务器收到请求后,因为自生的问题没法响应 | 500 | Internal Server Error |
请求的内容不存在 | 404 | NOT FOUND |
客户端发送的请求格式有问题等(一般不存在) | 400 | BAD REQUEST |
http服务器实现
文件概念
文件的Inode元信息
表示文件的索引节点,存储着文件的元信息,例如文件得创建者,文件创建日期,文件大小等。每个inode都有一个号码,操作系统用inode号码来识别不同的文件,使用命令ls -i
可以查看inode号码。
stat函数
stat
是C++用于读取文件资源管理器的库函数,头文件为:
#include<sys/stat.h>
#include<sys/types.h>
#include<unisted.h>
int stat(const char *path,struct stat *buf);
int fstat(int fd,struct stat *buf);
int lstat(const char *path,struct stat *buf);
parameter:
path:文件路径
buf:传入的保存文件状态的指针,用于保存文件的状态
fd:文件描述符
return:成功返回0,失败返回-1,并设置errno
stat
的结构体内容如下所示:
struct stat {
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* inode number */
mode_t st_mode; /* S_ISREG(st_mode) 是一个普通文件 S_ISDIR(st_mode) 是一个目录*/
nlink_t st_nlink; /* number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device ID (if special file) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for filesystem I/O */
blkcnt_t st_blocks; /* number of 512B blocks allocated */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
};
并发和并行
并发与并行的区别简单来说所谓的并发指的是多个进程按照一定的时间间隔进行,只不过这个时间间隔很小,人类难以感受到而已,实际上在微观角度,进程的并发执行还是顺序执行。
高并发:高并发是互联网分布式框架设计中必须要考虑的因素之一,通常指的是,通过设计系统能够同时并行处理很多请求。
线程可以并行的执行任务
//头文件
#include<pthread.h>
//函数
int pthread_create(pthread_t *thread,const pthread_attr_t *attr,void *(*start_routine)(void *),void *arg);
pthread_t:当前Linux中可理解为:typedef unsigned long int pthread_t
args1:传出参数,保存系统为我们分配好的线程