Django入门篇
Posted liu--huan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django入门篇相关的知识,希望对你有一定的参考价值。
基于 socket 的 Web 应用
本质上:浏览器是一个socket客户端,服务器是一个socket服务端
import socket soc = socket.socket( ) soc.bind(( ‘127.0.0.1‘,8001 )) soc.listen(5) while True: so ,addr = soc.accept() data = so.recv(1024) so.send(b‘HTTP/1.1 200 OK Content-Type:text/html ‘) # so.send(b‘sadf‘) print(data) data = str(data,encoding="utf-8") position = data.split(‘ ‘)[0].split(‘ ‘)[1] if ‘/index‘ == position: with open(‘index.html‘,‘rb‘) as f: da = f.read() so.send(da) else: so.send(b‘404‘)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>index</h1> <h2>dafdasdf</h2> <img src="https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike92%2C5%2C5%2C92%2C30/sign=775f519ac08065386fe7ac41f6b4ca21/fd039245d688d43f63d84526771ed21b0ff43bf5.jpg"> </body> </html>
http协议特性
-特点:1 基于TCP/IP协议之上的应用层协议
2 基于请求-响应模式(请求必定由客户端发送,服务端回复响应)
3 无状态保存(HTTP是一种不保存状态,级别,协议对于发送过的请求或响应都不做持久化处理。)
4 无连接(每次只处理一个请求,收到客户端应答后,即断开链接)
(4)无连接
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
http请求协议与响应协议
http协议包含由浏览器发送数据到服务器需要遵循的请求协议与服务器发送数据到浏览器需要遵循的请求协议。用于HTTP协议交互的信被为HTTP报文。请求端(客户端)的HTTP报文 做请求报文,响应端(服务器端)的 做响应报文。HTTP报文本身是由多行数据构成的字 文本。
请求协议
请求方式: get与post请求
-
GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的请求体中.
-
GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
-
GET与POST请求在服务端获取请求数据方式不同。
GET请求 # 请求首行 GET / HTTP/1.1 # get请求后面的参数 GET /?name=lqz&age=18 HTTP/1.1 # 请求头 Host: 127.0.0.1:8008 Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Cookie: csrftoken=7xx6BxQDJ6KB0PM7qS8uTA892ACtooNbnnF4LDwlYk1Y7S7nTS81FBqwruizHsxF ‘ # 请求体(get请求,请求体为空) POST请求 # 请求首行 POST /?name=lqz&age=18 HTTP/1.1 # 请求头 Host: 127.0.0.1:8008 Connection: keep-alive Content-Length: 21 Cache-Control: max-age=0 Origin: http://127.0.0.1:8008 Upgrade-Insecure-Requests: 1 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Referer: http://127.0.0.1:8008/?name=lqz&age=18 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Cookie: csrftoken=7xx6BxQDJ6KB0PM7qS8uTA892ACtooNbnnF4LDwlYk1Y7S7nTS81FBqwruizHsxF # 请求体 name=lqz&password=123‘
响应协议
URL简介
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
格式:
协议://IP:端口(80)/路径?name=lqz&age=18
?之前的是请求路径,?之后的是请求数据部分
以上是关于Django入门篇的主要内容,如果未能解决你的问题,请参考以下文章