web应用

cs/bs 架构

# c/s  mysql  cs装在同一台机器
    –c链接scmd窗口中   mysqlh 127.0.0.1 -P 3306 -urootp密码
    –网络协议:一般情况,都是软件定制协议—》基本都是基于TCP
# b/s 浏览器服务端 
    -咱们写的django运行后—-》s 服务端
    –客户端链接—-》浏览器 
    –网络协议:所有全是  http协议—》基于TCP
        -如果不是http协议,浏览器识别不了

# bs本质就是cs

# bs好处—》软件更新了—》只需要后端更新–》前端浏览器,不需要变—》直接访问,看到就是最新

基于SOCKET写一个web应用

我们学习bs架构软件开发—》我们开发 s端
使用socket一个 s端—》浏览器就可以访问了

import socket

def server_run():
    soc = socket.socket()
    soc.bind(('127.0.0.1', 8008))
    soc.listen(5)
    while True:
        conn, addr = soc.accept()
        recv_data = conn.recv(1024)
        print(recv_data)
        # 1 直接send里写,发送给客户端  http响应的格式
        # conn.send(b'HTTP/1.1 200 OKrnrn&lt;h1&gt;hello web&lt;/h1&gt;&lt;img src="https://img2.woyaogexing.com/2022/12/24/a22973058eab2aafa11248a8b6031f5e.jpg"&gt;</img&gt;')
        #2 打开一个html文件发送给客户端
        # with open('index.html','r',encoding='utf-8') as f:
        #     data=f.read()
        # conn.send(('HTTP/1.1 200 OKrnrn%s'%data).encode('utf-8'))
        # 3 动态网页字符串替换
        import time
        now=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        print(now)
        with open('index.html','r',encoding='utf-8') as f:
            data=f.read()
        data=data.replace('@@',now)
        conn.send(('HTTP/1.1 200 OKrnrn%s'%data).encode('utf-8'))
        conn.close()

if __name__ == '__main__':
    server_run()

http协议

1.是什么
HTTP协议是Hyper Text Transfer Protocol超文本传输协议)
 2.作用是?
服务器本地浏览器之间传输超文本的传送协议

 3 特点是什么
    -1基于TCP协议之上的【应用层】协议—-》它是可靠传输
    -2 基于请求-响应模式: 必须客户端主动发起–》服务端才有响应
        -如果实时服务端通信—》每隔2s发送一次请求–》轮询—》实现实时聊天
        -web版微信
        –实时通信—》使用轮询, webscoket 协议
        
        
   -3 无状态保存  
        –发送多次请求,对于服务端来讲,都是新的
        –cookiesession会话保持
        
   -4 无连接  客户端不会一直跟服务端链接
        基于tcp—》有链接
 
# 4 http请求协议与响应协议
    –请求协议
        –请求首行—》请求方式–》请求地址–》请求协议版本号 1.1  rn
        -请求头:keyvalue形式 rn   rnrn
        -请求体:get请求一般没有请求体,post请求有请求体
        
    -响应协议 
        -响应首行:HTTP/1.1 200 OKrn   –协议版本—响应状态码–》响应描述符
        -响应头:响应头有什么
        -响应体:一般给个html标签
            浏览器看到页面,都是响应体的内容

让其他人可以通过端口访问你的mysql数据库

修改mysql默认访问权限

#登录
mysql -uroot -p

#显示数据
show databases;

#进入mysql
use mysql;

#显示面板
show tables;

#显示host访问方式
select user,host from user;

#修改root用户的访问方式
update user set host = '%' where user = 'root';

#刷新
flush privileges;

让其他人可以通过端口访问你的Django项目

settings文件配置

ALLOWED_HOSTS = ['*', ]

然后terminal面板运行

python manage.py runserver 0.0.0.0:8000 

http版本及其区别

HTTP的版本之间的区别,主要是1.0/1.1/2.0三个版本的区别有哪些? – 知乎

常用的请求头,响应头,响应状态

HTTP响应头和请求头信息对照表-BeJSON.com

https://www.cnblogs.com/yf0826/p/9016602.html

HTTP状态码(响应码)_响应状态码-CSDN博客

原文地址:https://blog.csdn.net/safvirtu/article/details/134654007

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_39564.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注