网络协议HTTP TCP/UDP 浏览器缓存 Restful(十) (2)

HTTP与HTTPS

状态码 定义
1xx 报告   接收到请求,继续进程  
2xx 成功   步骤成功接收,被理解,并被接受  
3xx 重定向   为了完成请求,必须采取进一步措施  
4xx 客户端出错   请求包括错的顺序或不能完成  
5xx 服务器出错   服务器无法完成显然有效的请求  

xsrf与xss

CSRF(Cross-site request forgery)跨站请求伪造,CSRF重点在请求

XSS(Cross Site Scripting)跨站脚本攻击,XSS重点在脚本

四 RESTful (Representational State Transfer)

RESTful架构:

(1)每一个URI代表一种资源;

(2)客户端和服务器之间,传递这种资源的某种表现层;

(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

GET用获取资源,POST用来新建资源(或用于更新资源),PUT用来更新资源,DELETE用来删除资源。

RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议

SOAP(原为Simple Object Access Protocol的首字母缩写,即简单对象访问协议)是交换数据的一种协议规范,使用在计算机网络Web服务(web service)中,交换带结构信息

进化的顺序: RPC -> SOAP -> RESTful

CGI与WSGI

CGI是通用网关接口,是连接web服务器和应用程序的接口,用户通过CGI来获取动态数据或文件等。
CGI程序是一个独立的程序,它可以用几乎所有语言来写,包括perl,c,lua,python等等。

WSGI, Web Server Gateway Interface,是Python应用程序或框架和Web服务器之间的一种接口,WSGI的其中一个目的就是让用户可以用统一的语言(Python)编写前后端。

中间人攻击(Man-in-the-middle attack,通常缩写为MITM)是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

五 TCP/IP 与 UDP

TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。
这里有一张图,表明了这些协议的关系。

网络协议HTTP TCP/UDP 浏览器缓存 Restful(十)

TCP/IP协议族包括运输层、网络层、链路层。现在你知道TCP/IP与UDP的关系了吧。
Socket在哪里呢?

网络协议HTTP TCP/UDP 浏览器缓存 Restful(十)

Socket是什么呢?

​ Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

网络协议HTTP TCP/UDP 浏览器缓存 Restful(十)

TCP服务端

''' 访问服务器的步骤: 1 创建服务器serviceScoket socket.socket(协议版本,传输方式) 2 绑定服务器地址 serviceScoket.bind(ip地址,短号) 3 给服务器设置监听器(客户端的数量) serviceScoket.listen(客户端连接的数量) 4 等待客户端的连接 serviceScoket.accept() 5 接受客户端的请求 recv(大小) 6 服务器发送数据给客户端 send(数据) ''' import socket #创建服务器 serviceScoket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #绑定服务器地址(ip,端口号) serviceScoket.bind(('10.31.162.26',21334)) #给服务器设置监听,可以连入的客户端数量 serviceScoket.listen(5) print('等待客户端接入') #等待客户端接入 #sock是客服端的socket信息 #addr是客户端的地址(ip与端口) sock,addr = serviceScoket.accept() print('sock:%s'%sock) print(addr) print('客户端已接入') #接收客户端请求 while True: recvData = sock.recv(1024) print('客户端说:%s'%(recvData.decode('utf-8'))) sendData = input('服务器说:') #发送(回复)数据给客户端 sock.send(sendData.encode('utf-8'))

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsssws.html