ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1、套接字服务端及HTTP协议

2021-03-04 18:04:18  阅读:118  来源: 互联网

标签:HTTP 请求 响应 服务端 浏览器 接字 conn


1、套接字服务端

1、浏览器朝服务端发送请求

2、服务端接收请求

3、服务端返回相应的响应

4、浏览器接收响应 根据特定的规则渲染页面展示给用户看

如何做到浏览器能够跟多个不同客户端之间进行数据交互

1、浏览器很牛逼 能够自动识别不同服务端做不同处理
2、制定一个统一标准 HTTP协议----超文本传输协议
    规定服务器和浏览器之间的数据交互格式
import socket

server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(('127.0.0.1',8080))
server.listen(5)

while True:
    conn,addr = server.accept()
    data = conn.recv(1024)
    print(data)  # 二进制数据 bytes类型
    # 构造出符合HTTP协议格式的数据  无需掌握
    conn.send(b'HTTP/1.1 200 OK\r\n\r\n')
    # conn.send('好好学习、天天向上'.encode('gbk'))
    with open('第一个HTML文件.html','rb') as f:
        conn.send(f.read())
    conn.close()

2、HTTP超文本传输协议

HTTP 超文本传输协议---

四大特性;******

1、基于请求响应
2、基于TCP/IP 作用于应用层之上的协议
3、无状态
    不保存用户登录等信息
    eg:python虐我千百遍 我待python如初见
    由于 HTTP 协议是无状态的所以出现了一些专门用来记录状态的
    cookie、session、token....
4、无/短链接
    请求来一次我响应一次 之后旧没有任何链接关系了
        补丁: 长链接----双方建立连接之后默认不断开-websocket

请求数据格式

请求首行(标识HTTP协议版本,当前请求方式)
请求头(一大堆K,V键值对)
\r\n       # 这里的\r\n不能省略
请求体(并不是所有的请求方式都有 get没有 post有 存放的是post请求提交的敏感数据)

响应数据格式

响应首行(标识HTTP协议版本,响应状态码)
响应头(一大堆K,V键值对)

响应体(返回浏览器展示给用户看的数据)

响应状态码

用一串简单的数字来表示一些复杂的状态或者描述性信息 404:请求资源不存在
1XX:服务端已经成功的接收到了你的数据,你可以继续提交额外的数据
2XX:服务端成功的响应了你想要的数据(200 OK请求成功)
3XX:重定相(访问例如需要登录才能看到的页面,会自动跳转到登录页面)
4XX:请求错误
    404:请求资源不存在
    403:当前请求不合法或者不符合访问资源条件
5XX:服务器内部错误(500 机房爆炸等)

请求方式 requset

1、get请求
    朝服务端要数据
    eg:输入网址获取对应的内容
2、post请求
    朝服务端提交数据
    eg:用户登录 输入用户名和密码之后 提交到服务端做身份校验

url: 统一资源定位符(网址)

标签:HTTP,请求,响应,服务端,浏览器,接字,conn
来源: https://www.cnblogs.com/liuyang521/p/14481939.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有