模拟浏览器发送请求报文

import socket

# 建立socket对象
socket_con = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接指定服务器地址
socket_con.connect(('www.baidu.com', 80))
# 拼接请求报文
# 请求行
request_line = 'GET / HTTP/1.1\r\n'
# 请求头,必须要写明Host,原因是因为,之前连接就相当于找到了教室
# 这里的Host则相当于在教室里找座位,这样才能确定正确的位置
request_head = 'Host:www.baidu.com\r\n'
# 必须加空行
request = request_line + request_head + '\r\n'
# 发送给服务器,默认编码utf-8
socket_con.send(request.encode())
# 接收服务器返回的响应报文,并解码
response = socket_con.recv(4096).decode()
# 打印响应报文
print(response)
# 关闭socket

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

maven配置详解

什么是pom?     pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺...

29750
来自专栏mathor

网络协议详解

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送消息时将包含目标I...

29030
来自专栏王亚昌的专栏

开多少个FCGI进程才合适

    现在网站很多都用FCGI布署到WEB SERVER上提供服务,但同一个服务的FCGI开多少个进程才合适呢?

10110
来自专栏行者悟空

cas server + cas client 单点登录 原理介绍

2.3K60
来自专栏desperate633

TCP/IP 之 可靠数据传输原理什么是可靠?Rdt 1.0: 可靠信道上的可靠数据传输Rdt 2.0: 产生位错误的信道Rdt 2.1: 发送方, 应对ACK/NAK破坏Rdt 2.2: 无NAK消

可靠数据传输对于应用层、传输层、链路层都很重要,是网络领域的Top10问题。 对于传输层来说,由于相邻的网络层是不可靠的,所以要在传输层实现可靠数据传输(rd...

26820
来自专栏xcywt

<HTTP协议详解>由浅入深看HTTP

1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务...

13240
来自专栏Java技术栈

Java面试常问计算机网络问题

GET请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:/test/demo_form.asp?name1=value1&name2=va...

9110
来自专栏PHP在线

小哥哥,小姐姐,我有一份tcp、http面试指南你要吗?

要说http就绕不开tcp,TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。但是,http是基于tcp协议的。

13940
来自专栏windealli

socket常用函数知识点整理

调用close() 之后,进程不能再使用该描述符。 但是已经发送队列中的数据还是会继续发送,等到发送回再发起四次挥手。

32320
来自专栏GreenLeaves

Oracle 数据库和Sql Server数据库的区别

Oracle数据库的访问方式,和SqlServer数据库是有很大差别的,下面用图来说明: 1、Sql Server数据库 ? SqlServer数据库的访问方式...

22570

扫码关注云+社区

领取腾讯云代金券