第二章网页前端基础

Imagemap
第二章网页前端基础Python网络编程Socket库Socket和Socket库import socketSocket的协议类型socket_AF_UNIX:同一台机器上的进程通信socket_AF_INET:用于服务器之间的网络通信socket_INET6:基于IPv6方式的服务器与服务器之间的网络通信socket_SOCK_STREAM:基于TCP的流式socket通信socket_SOCK_DGRAM:基于UDP的数据报式socket通信socket_RAW:用于处理原始套接字、普通套接字无法处理的ICMP,IGMP ...socket_SOCK_SEQPACKET:可靠的连续数据包服务Socket库的方法服务器方法socket.bind(address)在AF_INET协议下入参address:tuple(host,port)如: socket.bind((host,port))socket.listen(backlog)监听传入的TCP连接backlog用于指定在拒绝连接前,可挂起的最大连接数socket.accept()接收TCP连接并返回(conn,address)conn:是新的套接字对象address:是连接客户端的地址客户端方法socket.connect(address)入参address:tuple(host,port)出错返回socket.errorsocket.connect_ex(address)入参address:tuple(host,port)出错返回error值,成功返回0公共方法客户端和服务端都可以使用的方法socket.recv(buffsize[,flag])接收TCP套接字的数据buffsize:要接收的最大数据量,如1024flag可忽略socket.send(string[,flag])发送TCP数据返回要发送的字节数量socket.sendall(string[,flag])完整发送TCP数据socket.recvfrom(bufsize[,flag])接收UDP套接字数据返回值是tuple(data,address)data包含接收数据的字符串address是发送数据套接字地址socket.sendto(string[,flag],address)发送UDP数据入参address:tuple(host,port)socket.close()关闭套接字socket.settimeout(timeout)设置套接字操作的超时时间timeout:单位:秒None表示永远不超时socket.gettimeout()返回套接字超时值 ,单位:秒TCP编程服务端TCPTCP_SRV.py客户端TCPTCP_CLI.pyUDP编程服务端UDPUDP_SRV.py客户端UDPUDP_CLI.py认识HTTP协议HTTP请求方法与过程请求方法GET(必须):请求指定的页面信息HEAD(必须):请求指定资源,服务器不返回具体内容POST:向指定资源的提交数据PUT:从客户端上传指定资源的资源,更新服务器端指定资源DELETE:请求服务器删除标识的指定资源 TRACE:回显服务器收到的请求OPTIONS:允许客户端查看服务器端上指定资源所支持的所有HTTP请求方法CONNECT:预留给管道方式使用请求与响应客户端与服务器间的
请求和响应步骤连接Web服务端发送HTTP请求向服务端发送报文:请求行,请求头部,空行和请求数据服务器接收请求并返回HTTP响应释放TCP连接Connection:Close时,服务器主动关闭TCP连接Connection:Keep-Alive:连接会保持一段时间客户端解析 HTML内容HTTP状态码5类状态码1XX表示请求已被接收,需后续处理2XX表示请求已成功被服务器接收,理解并接受*3XX表示需要客户端采取进一步操作才能完成请求4XX表示客户端可能发生错误,妨碍服务器的处理5XX表示服务器在处理请求的过程中有错误或异常常见状态码200 OK400 Bad Request403 Forbidden404 Not Found500 Internal Server Error503 Service UnavailableHTTP头部信息通用头常用的标准通用头Connection:决定客户端和服务器在进行一次会话后,服务器是否立即关闭网络 ...Date:请求消息的响应的时间请求头常用请求头字段Authorization:需要认证资源的认证信息Accept-Charset:可接受字符集Accept-Encoding:可接受的响应内容的编码方式Connection:客户端想要优先使用的连接类型,如keep-aliveCookie:由之前服务器通过Set-Cookie设置的一个HTTP Cooki ...Host:服务器的域名和端口号User-Agent:用户代理的字符串值 响应头常用的响应头字段Set-Cookie:设置 HTTP CookieStatus:设置HTTP响应状态实体头常用实体头字段Conetent-Length:响应体的字节长度Content-Type:设置响应体的MIME类型Expires:设置响应体的过期时间熟悉CookieCookie机制为解决 HTTP无状态带来的负面作用本质是一段文本信息保存在客户端的客户端再次请求时会带上Cookie仅当Cookie合法且未过期时,用户才可以登陆网站服务器可以再次修改CookieCookie存储方式内存式存储浏览器关闭后就消失又称非持久Cookie或会话 Cookie硬盘式存储不随浏览器关闭而消失又称持久Cookie有时效性*,会过期用户可以手动清理Cookie实现过程服务器在响应信息包含一个Set-Cookie的响应头客户端根据这个响应头存储Cookie信息客户端再次请求服务器时在请求信息中带上Cookie请求头服务器根据这个请求头的Cookie识别用户Cookie实现步骤客户端请求服务器服务器响应请求客户端再次请求服务器Http获取百度网页实例SY_2_9_BAIDU.py常见问题TCP&UDP编程常见问题代码缩进问题代码拼写问题如url地址有误可以浏览器中打开试试如headers字符串有误变量上下不一致服务端&客户端如何调试观看:调试&问题分析视频TCP&UDP编程常见问题2将脚本的文件取名为socket.py导致所有引用python3内部socket库时异常脚本运行时报 No requestspycharm中解析器问题在pycharm中,选择项目根路径,选择菜单:文件-设置选择:project->Python Interpreter,选择先前安装的Py ...脚本放在venv虚拟目录下将脚本文件移到venv目录外删除venv目录字符误打如url地址有误可以浏览器中打开试试如headers字符串有误比较难发现, 可以从正常的脚本中copy过来如rqg定义后,下面调用写成tqg这类IDE会有提示观看:调试&问题分析视频
hide
第二章网页前端基础
hide
Python网络编程
hidefull-1
Socket库
hide
认识HTTP协议