模拟浏览器发送请求报文

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

  

原文地址:https://www.cnblogs.com/wf-skylark/p/9027096.html

时间: 2024-08-08 01:10:32

模拟浏览器发送请求报文的相关文章

telnet客户端模拟浏览器发送请求

telnet 客户端 telnet客户端能够发出请求去连接服务器(模拟浏览器) 使用telnet之前,需要开启telnet客户端 1.进入控制面板 2.进入程序和功能,选择打开或关闭windows功能 3.进入后找到telnet客户端,点击确定 模拟浏览器发出http协议请求 1.打开telnet客户端:进入cmd 2.连接apache服务器 语法:telnet localhost port(telnet localhost 80) 3.数据回显 3.1同时按住:ctrl+右中括号 3.2按下回

浏览器向服务器发送请求报文

参考资料:浏览器加载和渲染html的顺序 域名:就是给IP起了一个别名,域名的作用就是方便人的记忆 1>浏览器向服务器发送请求报文 http:/www/baidu.com:80/login.aspx 当我在浏览器中输入一个这样以一个url地址:浏览器第一步做的事情就是根据这个www/baidu.com的域名来找DNS服务器,解析成对应的IP地址. 例如解析成:http://202.108.22.5 :80/login.aspx 浏览器在解析到IP地址后,做的第二步就是对指定的URL进行HTTP封

记:使用python模拟浏览器发送http消息

python自带的urllib,urllib2可以极方便做http操作,在我们按照http方式提交消息请求后,有可能会看见返回这个错误“403 forbidden",这是请求的网站做了阻止,于是我们需要把自己伪装成模拟器.对此,可以加上headers={'User-Agent':user-agent,'cookie':cookie},注意操作的网站 需要登录账号的话,就需要加上cookie,这两个值可以通过chrome的”开发者工具“查看: 把他们加上去,然后在请求值那里再加上: req = u

php使用curl模拟多线程发送请求

每个PHP文件的执行是单线程的,但是php本身也可以用一些别的技术实现多线程并发比如用php-fpm进程,这里用curl模拟多线程发送请求.php的curl多线程是通过不断调用curl_multi_exec来获取内容,这里举一个demo来模拟一次curl多线程并发操作. 1 /** 2 * Subject:php模拟多线程请求curl返回结果 3 * User: luokakale 4 * Date: 2018/11/3 5 * Time: 11:14 6 */ 7 8 //设置缓冲为0(也可以

httpClient模拟浏览器发请求

一.介绍 httpClient是Apache公司的一个子项目, 用来提高高效的.最新的.功能丰富的支持http协议的客户端编程工具包.完成可以模拟浏览器发起请求行为. 二.简单使用例子 : 模拟浏览器发起访问谷歌首页请求 1.pom.xml 配置 <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <ve

基于nodejs模拟浏览器post请求爬取json数据

今天想爬取某网站的后台传来的数据,中间遇到了很多阻碍,花了2个小时才请求到数据,所以我在此总结了一些经验. 首先,放上我所爬取的请求地址http://api.chuchujie.com/api/?v=1.0: 下面我们开始爬取数据. 一.写一个基于nodejs的爬虫 1.引入所需模块 这里需要引入http模块(nodejs用来向浏览器发送http请求的模块)和querystring模块(把前台传过来的对象形式的参数转化成字符串形式): var http = require("http"

http请求及模拟浏览器发送http请求

/**   * 测试新增图片   * @throws IOException    * @throws HttpException    * @throws SAXException    * @throws ParserConfigurationException    */       // @Test//  public void TestUploadImage() throws HttpException, IOException, SAXException, ParserConfigu

[基础架构]PeopleSoft工作原理(从浏览器发送请求开始)

PeopleSoft体系结构是由几大组成部分构成,之前文章已经详细讲过,了解这几大组成部分是怎么协同工作的更为重要.在本文中将帮助您了解PeopleSoft的工作原理以及用户发送的请求是如何被解析以及如何返回给用户的.该文内容不仅可以帮助技术团队解决项目中遇到的技术问题,也可以更好帮助大家了解PeopleSoft的体系结构. PeopleSoft如何工作(以下编号对应上图中编号) 由web浏览器解析url地址链接,该url映射webserver 的ip. 在servlet引擎中运行servlet

JAVA--利用HttpClient模拟浏览器登陆请求获取响应的Cookie

在通过java采集网页数据时,我们常常会遇到这样的问题: 站点需要登陆才能访问 而这种网站,一般都会对请求进行账号密码的验证,验证的方式也有多种,需要具体分析. 今天分析其中的一种情况: 站点对登陆密码进行动态加密,作为Cookie响应给客户端,之后的请求需要携带加密后的密码进行访问 登陆成功的响应头如下图: 之后的请求头: 因为每次登陆生成一个新的加密密码,所以之前的密码会失效 所以,需要在每次采集之前,先模拟登陆获取响应的密码,再作为cookie继续请求,我们选择采用HttpClient模拟