进一步理解http,通过sockek发起http协议格式请求

2024-05-04 11:48

本文主要是介绍进一步理解http,通过sockek发起http协议格式请求,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很多时候hook http 抓不到包也许是人家通过socket完成的,这socket也给了我很大启发,以后搞c代码加密的时候用jni调用socket也是可以完成一定的伪装工作的.

抓包

记性不够好,记不住怎么写的了,我觉得是可以理解的,我无法理解那些让我口述原理的面试官,我的记忆有问题,那么我的搬运能力就不一定有问题,有时候我的记忆只是关联一下,很多东西要做的时候不理解完全可以搜索到我之前巩固的东西,然而面试官需要你当时能清楚的描述一件事物,对我来说非常痛苦,简直跟以前考试一样不爽。

j先完成抓包工作
请求头信息

GET /about/ HTTP/1.1
Host: qssq666.cn
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://qssq666.cn/2017/06/01/%E6%96%B0%E5%8A%A8%E6%80%81/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: Uxxxxxxxxxx不告诉你
If-Modified-Since: Sat, 19 May 2018 14:34:23 GMT

响应头信息

HTTP/1.1 304 Not Modified
Date: Sat, 26 May 2018 10:32:13 GMT
Via: 1.1 varnish
Cache-Control: max-age=600
Expires: Fri, 25 May 2018 22:30:08 GMT
Age: 9
Connection: keep-alive
X-Served-By: cache-hnd18729-HND
X-Cache: HIT
X-Cache-Hits: 2
X-Timer: S1527330733.027674,VS0,VE0
Vary: Accept-Encoding
X-Fastly-Request-ID: 38bcf151abc24985031263ebd6db1a5c1d82c091
image.png

模拟常规get的操作

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;public class SocketTest {public static void main(String[] args) throws IOException {Socket socket = new Socket("www.qssq666.cn", 80);// ip地址或者域名// 端口号,如果是https则是443// 接受数据的输入流final BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));// 发送数据 输出流BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));bw.write("GET /about/ HTTP/1.1");bw.write("\n");bw.write("Host: qssq666.cn");bw.write("\n");bw.write("Connection: Keep-Alive");bw.write("\n");bw.write("\n");bw.flush();System.out.println("execute....");while (true) {String line = null;try {// System.out.println("========readLineStart=======");while ((line = br.readLine()) != null) {System.out.println("" + line);}// System.out.println("========readLineEnd=======");} catch (IOException e) {System.err.println("出现异常:" + e.toString());e.printStackTrace();}// System.out.println("========================");}}
}

需要注意的问题就是每一行写入都需要换行,这个和抓包发现的格式是差不多的,最后是头部请求完毕之后再补上一个换行否则也不会成功。会一直等待响应

image.png

吃完饭用php写个本地的post参数的接受。然后再发一下post的手写

更多参考内容https://blog.csdn.net/aaron_yang666/article/details/52795978

这篇关于进一步理解http,通过sockek发起http协议格式请求的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959128

相关文章

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

Spring Boot Controller处理HTTP请求体的方法

《SpringBootController处理HTTP请求体的方法》SpringBoot提供了强大的机制来处理不同Content-Type​的HTTP请求体,这主要依赖于HttpMessageCo... 目录一、核心机制:HttpMessageConverter​二、按Content-Type​处理详解1.