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得到浏览器发送的信息。
2.netassist作为服务器返回信息。
得到这样的结果:
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()