linux11.

套接字编程:
udp编程
服务端流程:创建套接字 绑定地址信息 接收数据 发送数据 关闭套接字
客户端流程:创建套接字 绑定地址信息 发送数据 接收数据 关闭套接字
tcp编程:
服务器:创建套接字 绑定地址信息 开始监听 获取已完成的新连接 收发数据(谁先发送无所谓) 关闭套接字
客户端:创建套接字 (绑定地址信息)向服务端发起连接 收发数据 关闭套接字
listen (sckefd,int backlog )
assept (sockfd sockaddr*,socklen_t*)—阻塞函数

服务端一次只能与一个客户端通信一次
使用多进程/多线程进行处理各个任务(获取新连接/与各个客户端进行通信)
网络基础2/3

网络基础2:应用层/传输层
应用层:负责应用程序之间的数据沟通
1.自定制协议
2.知名协议—HTTP
1.自定制协议:程序员自己定义的协议/私有协议
网络版计算器:
客户端:将两个数字和一个运算符传输给服务端
服务端:对接收到的信息进行解析,得到数字和运算符,运算出结果之后,将结果返回给客户端
协议的定制:

序列化:将数据对象按照指定的协议在内存中进行排布成为可持久化存储/数据传输的数据串
反序列化:将数据串按照指定的协议进行解析得到各个数据对象

json序列化/protobuf序列化/二进制序列化—课后调研

知名协议:HTTP/FTP
HTTP:超文本传输协议—铭文传输—早期用于传输超文本数据
查询字符串—是客户端提交给服务器的数据,提交的数据中不能出现特殊字符,容易与url中的分隔符造成二异,造成url解析失败,因此若提交的数据中
有特殊字符就必须进行转义
URL(网址)编码:+ — (ascii=43) 16进制的数字字符串0x2B
并且为了标识这两个字符是经过了url编码的数据,因此在前面加上%做以标识
URL解码:在查询字符串中 若遇到% 则认为紧跟其后的两个字符需要转码
查询字符串是一个个的k=val键值对, 并且键值对之间以&进行分隔
查询字符串:用户向服务器提交的数据
提交的数据中不能出现特殊字符,出现了就需要转义—urlencode/urldecode
urlencode:将特殊字符的每一个字节转换为16进制数字的字符串 ±>2b
并且为了表述数据经过了编码,增加%进行提示 ±>%2b
urldecode:解析时在查询字 符串中遇到%则认为紧跟其后的两个字符需要解码
第一个字符转换为数字左移4位/乘以16+ 第二个字符转换为数字

协议名称://用户名:密码@服务器ip地址:服务器端口/请求的资源路径?查询字符串#片段标识符
服务器IP地址:也可以使用域名
请求资源的路径:在服务器上的相对路径

HTTP协议:
为了更好的使用协议,因此需要了解协议的具体实现
协议格式:
首行:主要描述当前的数据使用的协议版本,以及请求的资源路径/请求方法/相应状态
头部:更加细致的描述本次数据的一些详细信息
空行:间隔头部与正文
正文:具体要传输给对端的数据

各个字段:

格式:请求首行:请求方法URL 协议版本
请求方法:9种 常用的三个请求方法
GET:主要用于向服务器请求实体资源,也可以提交数据,提交的数据作为查询字符串存储在url中 url长度有限:1kb->4k
POST:主要用于向服务器提交表单的数据,提交的数据存在正文中
HEAD:类似于GET,但是只用于获取响应头部
协议版本:
Content正文 Type:正文类型
Contsnt-Length 正文长度 Transfer-Encoding/Location/Set-Cookie/Cookie
头部:
格式:以一个个key:val形式组成的键值对,并且每个键值对以\r\n作为结尾
空行:\r\n

相应首行:协议版本 响应状态码 状态码描述\r\n
相应状态码:1xx /2xx/3xx/4xx/5xx
2xx:请求已经正确处理完毕 200
3xx:资源请求重定向 301/302
4xx:客户端错误 404/400
5xx:服务端错误 502/504

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值