学习Django,http协议,

Posted lizeqian1994

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Django,http协议,相关的知识,希望对你有一定的参考价值。

学习Django

http协议

规则

‘‘‘
http协议:超文本传输协议
①基于TCP/IP协议基础上的应用层协议,底层实现仍为socket
②基于请求-响应模式:通讯一定是从客户端开始,服务器端接受到客户端一定会做出对应响应
③无状态:协议不对任何一次通讯状态和任何数据做保存
③无连接:一次连接只完成一次请求-响应,请求响应完毕后立即断开连接
‘‘‘

http工作原理(事务)

# 一次http操作称之为一个事务,工作过程可分为四步
# 1.客户端与服务端建立连接
# 2.客户端发生一个http协议指定格式的请求
# 3.服务器端接收请求后,响应一个http协议指定格式的响应
# 4.客户端将服务器的响应显示展现给用户

请求

‘‘‘
请求行:GET|POST(请求方式) /(请求路径) HTTP/1.1(http协议版本)
请求头:(了解)
请求体:GET 请求体放到请求路径后进行拼接 
    POST会在请求行与请求头结束后,以数据包方式单独发送

请求报文
# 请求行  请求头  请求体
‘‘‘
POST / HTTP/1.1
    #请求行(必须)
Host: 127.0.0.1:8001
 
Connection: keep-alive

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/70.0.3538.110 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,en;q=0.8



usr=abc&pwd=123  #请求体(可选)
‘‘‘

响应

‘‘‘
响应行(必须):HTTP/1.1(http协议版本) 200(状态码) ok(状态结束)
                           1打头:消息通知
                           2打头:请求成功
                           3打头:重定向(重新定向)
                           4打头:客户端错误
                           5打头:服务器端错误
响应头(可选):(了解)
响应体(可选):具体数据
注意:响应规则与响应体内容之间还需要一个
标识分割 响应规则:响应行和响应头

响应报文:
# 响应行  响应头  响应体
‘‘‘
HTTP/1.1 200 OK
  #响应行
Content-type:text/html
  #响应头

 
Login Success #响应体
‘‘‘
‘‘‘
import socket
PORT = 4396
server = socket.socket()
server.bind((127.0.0.1,PORT))
server.listen(5)
print(服务端启动:http://127.0.0.1:%s% PORT)
while True:
    browser,_ = server.accept()
    data = browser.recv(1024).decode(utf-8)
    print(data) #一次请求就会获得一次响应,连接不上会一直请求,所以会产生多个响应,超时结束
#server
import socket
PORT = 4396
server = socket.socket()
server.bind((127.0.0.1,PORT))
server.listen(5)
print(服务端启动:http://127.0.0.1:%s% PORT)
while True:
    browser,_ = server.accept()
    data = browser.recv(1024).decode(utf-8)
    print(data)
    # 要遵循http协议返回数据:响应行(必须) 响应头 响应体
    browser.send(bHTTP/1.1 200 OK
)  # 响应行(必须),以
结束
    browser.send(bContent-type:text/html
) # 响应头(可选),服务于响应体
    browser.send(b
)  # 响应规则与响应体内容之间还需要一个
标识分割
    browser.send(bnormal msg)  # 响应体(可选)
    browser.send(b<h1>hello wold</h1>) # 响应体(可选)
    browser.close()

 

  

 

 

以上是关于学习Django,http协议,的主要内容,如果未能解决你的问题,请参考以下文章

学习Django之前戏

Django学习第一天

Django知识点汇总

web应用,HTTP协议以及Django初次认识与安装

django学习第81天Django模板层2

Django - 学习目录