HTTP(超文本传输协议)
用于互联网上传输网页、图片、视频之类
主要负责客户端和服务器(浏览器)之间的通信
特点
1.无状态
每次响应都是独立的,服务器斌你该不会记录上一次的请求信息
2.基于请求响应
必须先由客户端发起请求,如输入网址等,服务器再根据请求返回响应内容
3.明文传输
数据在传输过程中并不会加密,可能会被第三方拦截
对"无状态"的弥补方案
cookie:服务器通过响应头给客户端发送一小段数据,客户端的后续请求会自动携带该数据段,服务器通过它识别信息
Session:服务器为每个登录的客户创建一个会话,并存储状态,再通过cookie发送sessionTD,通过该ID找到数据
Token:客户端登录后,返回一个加密的token,后续的客户端会鞋底啊token,识别身份

HTTP传输过程
1.建立TCP连接
2.客户端发送HTTP请求
客户端会按照HTTP协议格式,封装数据发送请求数据给服务器
请求内容包含三部分:
请求行:明确请求方式,目标资源路径,HTTP版本
请求头:携带附加信息,浏览器类型,接受方式,cookie
请求体(可选):仅在POST方式中存在,用于传输表单信息
3.服务器处理请求并返回HTTP响应
①解析请求内容②执行业务逻辑③按照格式响应
相应内容包含三部分:
响应行:HTTP版本,状态码(200,403,404),描述访问结果
响应头:携带服务器的附加信息,数据类型和数据长度
响应体:核心数据,如HTML代码,图片二进制,jsons数据
4.关闭TCP连接(4次挥手)
HTTP长连接和短链接
短链接
一次请求后就断开连接
长连接
多请求复用一个连接
长连接短链接对比
|------|----------|--------------|
| | 短连接 | 长连接 |
| 生命周期 | 完成响应就关闭 | 建立请求后可承载多次响应 |
| 连接标识 | 无需标识 | keep-alive |
| 版本 | http 1.0 | http 1.1 |
| 场景 | 早期页面 | 现代复杂页面 |
| 资源消耗 | 高,频繁建立连接 | 复用一个连接,资源消耗低 |
其他
DNS(域名系统):功能:域名->IP地址
ARP(地址解析协议):IP地址->MAC物理地址
NAT(网络地址转换):将私有IP转为公有
DHCP(动态主机配置协议):自动分配网络连接信息(IP地址,网关,DNS)
index.html
是网站的默认首页文件,当用户去访问某个域名时,而不指定对应的文件名时,服务器会自动查找该文件,并返回这个文件
作用
网站默认入口,无需输入完整的路径,直接访问域名就可显示,降低用户操作成本
HTML
建立网站的基础语言
lseek
移动文件读写指针的位置
核心作用
指定下一次读写文件的起始位置,实现对文件的随机访问
off_t lseek(int fd, off_t offset ,int whence)
fd:文件描述符
offset:偏移量
whence:基准位置(决定offset从哪里开始计算)
SEEK_SET:以文件开头为基准
SEEK_CUR:以当前指针为基准
SEEK_END:以文件末尾为基准
返回值:成功移动指针时,返回新指针的位置;失败返回-1