欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

web1:http协议简介和用netassist和py程序当http服务器

程序员文章站 2022-07-07 13:12:36
...

HTTP协议
netassist当http服务器
py程序当http服务器

HTTP协议

在web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP,所以:

  • HTTP是在网络上传输HTML的协议,用来浏览器和服务器的通信。

1.浏览器最好用谷歌和火狐

http协议的一部分

浏览器----->服务器发送的请求格式

GET / HTTP/1.1
Host: 192.168.79.1:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

简单介绍下

组成 功能
get / 标记着浏览器请求的是哪一个页面
host 服务器的ip地址,请求的目标
connection 链接
accept 浏览器可以接受的格式
user-agent 浏览器的版本
accept-encoding 可以接收的格式
accept-language 可以接收的语言

默认提交这么多的数据


服务器----->浏览器发送的请求格式

HTTP/1.1 200 OK
Bdpagetype: 1
Bdqid: 0xaa27106b0003e112
Cache-Control: private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html
Cxy_all: baidu+ed43ff7196d3ddacb010b81a9dd3c19a
Date: Tue, 05 Mar 2019 03:08:08 GMT
Expires: Tue, 05 Mar 2019 03:08:00 GMT
Server: BWS/1.1
Set-Cookie: delPer=0; path=/; domain=.baidu.com
Set-Cookie: BDSVRTM=0; path=/
Set-Cookie: BD_HOME=0; path=/
Set-Cookie: H_PS_PSSID=1435_21121_28585_28558_28604; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Vary: Accept-Encoding
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked
组成 功能
date 服务器当前时间
cache-control 缓存是公有还是私有
content-encoding 压缩格式
content_type 浏览器格式和编码
server 服务器
set-cookle 浏览记录

netassist当http服务器

1.建立连接,netassist得到浏览器发送的信息。
2.netassist作为服务器返回信息。

1.建立连接,netassist得到浏览器发送的信息。

web1:http协议简介和用netassist和py程序当http服务器

web1:http协议简介和用netassist和py程序当http服务器


2.netassist作为服务器返回信息。

web1:http协议简介和用netassist和py程序当http服务器得到这样的结果:
web1:http协议简介和用netassist和py程序当http服务器


py程序当http服务器

import socket


def main():
    # 创建套接字
    tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    # 绑定端口
    localaddr = ("",8080)
    tcp_server_socket.bind(localaddr)

    #换为接听模式
    tcp_server_socket.listen(128)

    # 等待客户端连接
    new_socket,client_addr = tcp_server_socket.accept()

    # 接受数据
    recv_data = new_socket.recv(1024)
    print (recv_data)

    # 返回数据
    response = "HTTP/1.1 200 OK\r\n"
    response +="\r\n"
    response +="hahaha"

    new_socket.send(response.encode("utf-8"))

    # 关闭套接字
    tcp_server_socket.close()


if __name__ == '__main__':
     main()