精华内容
下载资源
问答
  • JAVA如何获取HTTP请求头
    千次阅读
    2021-02-12 13:04:12

    JAVA如何获取HTTP请求头

    在利用Java网络编程时,常常需要获取HTTP请求头,那么JAVA如何获取HTTP请求头呢?下面小编为大家介绍了JAVA获取HTTP请求头的.方法,希望能帮到大家!

    在利用Java网络编程时,利用Java获取HTTP Request 和 Response头字段,可以利用Java语言根据需要添加自定义的HTTP头字段,而不必拘泥于标准HTTP定义的头字段。

    代码如下:

    public class TestURL {

    public static void main(String[] args) {

    String destURLStr= "http://www.baidu.com";

    URL destURL = null;

    URLConnection urlCon = null;

    HttpURLConnection httpUrlCon= null;

    String readResFile = "C:/Users/zhoujw/Desktop/readResFile.html";

    BufferedWriter bw = null;

    try {

    bw = new BufferedWriter(new FileWriter(readResFile));

    destURL = new URL(destURLStr);

    urlCon = destURL.openConnection();

    httpUrlCon = (HttpURLConnection)urlCon;

    //set request property

    httpUrlCon.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch");

    //可根据需要添加自定义请求头

    httpUrlCon.setRequestProperty("Test Header1", "test1");

    httpUrlCon.setRequestProperty("Test Header2", "test2");

    httpUrlCon.connect();

    BufferedReader br = new BufferedReader(new InputStreamReader(httpUrlCon.getInputStream(), "gbk"));

    String webpage = null;

    while((( webpage = br.readLine()) != null))

    {

    //    System.out.println(webpage);

    bw.write(webpage);

    bw.flush();

    }

    //debug

    System.out.println("Self Define Headers:");

    System.out.println(" Test Header1: " + httpUrlCon.getRequestProperty("Test Header1"));

    System.out.println(" Test Header2: " + httpUrlCon.getRequestProperty("Test Header2"));

    System.out.println();

    //echo request property

    echoRequestHeaders(httpUrlCon);

    //echo response property

    echoResponseHeaders(httpUrlCon);

    } catch (MalformedURLException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    public static void echoRequestHeaders(HttpURLConnection httpUrlCon){

    System.out.println("Request Headers:");

    System.out.println(" " + httpUrlCon.getRequestMethod() + " / " + " HTTP/1.1");

    System.out.println(" Host: " + httpUrlCon.getRequestProperty("Host"));

    System.out.println(" Connection: " + httpUrlCon.getRequestProperty("Connection"));

    System.out.println(" Accept: " + httpUrlCon.getRequestProperty("Accept"));

    System.out.println(" User-Agent: " + httpUrlCon.getRequestProperty("User-Agent"));

    System.out.println(" Accept-Encoding: " + httpUrlCon.getRequestProperty("Accept-Encoding"));

    System.out.println(" Accept-Language: " + httpUrlCon.getRequestProperty("Accept-Language"));

    System.out.println(" Cookie: " + httpUrlCon.getRequestProperty("Cookie"));

    System.out.println(" Connection: " + httpUrlCon.getHeaderField("Connection"));//利用另一种读取HTTP头字段

    System.out.println();

    }

    public static void echoResponseHeaders(HttpURLConnection httpUrlCon) throws IOException{

    System.out.println("Response Headers:");

    System.out.println(" " + "HTTP/1.1 " + httpUrlCon.getResponseCode() + " " + httpUrlCon.getResponseMessage());

    System.out.println(" status: " + httpUrlCon.getResponseCode() + " " + httpUrlCon.getResponseMessage());

    System.out.println(" content-encoding: " + httpUrlCon.getContentEncoding());

    System.out.println(" content-length : " + httpUrlCon.getContentLength());

    System.out.println(" content-type: " + httpUrlCon.getContentType());

    System.out.println(" Date: " + httpUrlCon.getDate());

    System.out.println(" ConnectTimeout: " + httpUrlCon.getConnectTimeout());

    System.out.println(" expires: " + httpUrlCon.getExpiration());

    System.out.println(" content-type: " + httpUrlCon.getHeaderField("content-type"));//利用另一种读取HTTP头字段

    System.out.println();

    }

    }

    运行结果:

    Self Define Headers:

    Test Header1: test1

    Test Header2: test2

    Request Headers:

    GET / HTTP/1.1

    Host: www.baidu.com

    Connection: keep-alive

    Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

    User-Agent: Java/1.6.0_20

    Accept-Encoding: gzip,deflate,sdch

    Accept-Language: null

    Cookie: null

    Connection: Keep-Alive

    http://www.baidu.com

    Response Headers:

    HTTP/1.1 200 OK

    status: 200 OK

    content-encoding: gzip

    content-length : -1

    content-type: text/html; charset=utf-8

    Date: 1427817028000

    ConnectTimeout: 0

    expires: 1427817001000

    content-type: text/html; charset=utf-8

    【JAVA如何获取HTTP请求头】相关文章:

    更多相关内容
  • 1、为什么要设置headers? 在请求网页爬取的时候,输出的text信息中会出现抱歉,无法访问等字眼,这就是禁止爬取,需要通过反爬机制去解决这个问题。...Python爬虫中Requests设置请求头Headers的方法 注意:he
  • 如何查看一个网页请求头header信息 首先使用浏览器打开一个网页,然后按F12,例如: 然后点击右边的Network,并按下Ctrl + R,如下图所示: 在下面的文件栏里面找到以.cn/.com类型结尾的文件,点击,右边就会...

    如何查看一个网页的请求头header信息

    首先使用浏览器打开一个网页,然后按F12,例如:
    在这里插入图片描述
    然后点击右边的Network,并按下Ctrl + R,如下图所示:
    在这里插入图片描述
    在下面的文件栏里面找到以.cn/.com类型结尾的文件,点击,右边就会出现相应的内容,如下图所示:
    在这里插入图片描述
    这个时候就能在右边找到header等信息了。

    展开全文
  • 浏览器查看响应头与请求头方法

    浏览器查看响应头与请求头方法

    进入firefox,按f12,网络,随便点一个进去,发现消息头下面分为响应头与请求

    在这里插入图片描述

    展开全文
  • http 请求头referer详解

    千次阅读 2021-06-14 04:30:14
    Referer(引荐者)请求头referer 与 origin的区别?origin 是协议、域名;referer可以根据携带路径和参数referer 是什么?什么时候携带?什么时候不携带?referrer是HTTP请求header的报文头,用于指明当前流量的来源...

    Referer(引荐者)请求头

    referer 与 origin的区别?origin 是协议、域名;referer可以根据携带路径和参数

    referer 是什么?什么时候携带?什么时候不携带?

    referrer是HTTP请求header的报文头,用于指明当前流量的来源参考页面。通过这个信息,我们可以知道访客是怎么来到当前页面的。这对于Web Analytics非常重要,可以用于分析不同渠道流量分布、用户搜索的关键词等。

    **Referer** 请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用 Referer 请求头识别访问来源,可能会以此进行统计分析、日志记录以及缓存优化等。

    referer的两种形式(个人认为)网页的referer,即请求html文件接口请求头携带的Referer;可以通过document.referrer 获取;

    1.1 从a标签跳转的页面,从百度搜索页跳转的页面(百度自家网站,即同域名跳转),刷新,document.referrer 不变!

    1.2 从百度搜索页跳转的页面(其他网站的页面),刷新,document.referrer变为空!! 因为涉及到百度引导流量的统计,所以这个再次刷新后document.referrer 变为空,感觉是合理的,但不知道是怎么实现的。??其他请求静态资源或是交互api请求头的Referer

    常见不携带的情况:来源页面采用的协议为表示本地文件的 "file" 或者 "data" URI;

    当前请求页面采用的是非安全协议,而来源页面采用的是安全协议(HTTPS);即从https到http;与referrer policy的默认值一个意思。

    用户在地址栏输入网址,或者选中浏览器书签,也不发送Referer字段。

    使用http重定向

    控制referer的方式

    meta方式

    html 标签方式通过referrerpolicy在内容属性a,area,img,iframe,link,或script元素

    1.1 例如通过元素rel属性控制。 a,area、formxxx

    服务器发送网页的时候,通过 HTTP 头信息的Referrer-Policy告诉浏览器。

    像这样:Referrer-Policy: origin

    Referrer policy 控制Referer内容

    bVbO76u

    referrer policy 各值的含义

    (1)no-referrer

    不发送Referer字段。

    (2)no-referrer-when-downgrade

    如果从 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,其他情况发送(包括 HTTP 网址链接到 HTTP 网址)。这是浏览器的默认行为。

    (3)same-origin

    链接到同源网址(协议+域名+端口 都相同)时发送,否则不发送。注意,https://foo.com链接到http://foo.com也属于跨域。

    (4)origin

    Referer字段一律只发送源信息(协议+域名+端口),不管是否跨域。

    (5)strict-origin

    如果从 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,其他情况只发送源信息。

    (6)origin-when-cross-origin

    同源时,发送完整的Referer字段,跨域时发送源信息。

    (7)strict-origin-when-cross-origin

    同源时,发送完整的Referer字段;跨域时,如果 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,否则发送源信息。

    (8)unsafe-url

    Referer字段包含源信息、路径和查询字符串,不包含锚点、用户名和密码。

    遗留未知内容

    解决的问题

    如何让浏览器在访问链接时不要带上referer基于HTML标准,可以在a标签内使用rel="noreferrer"来达到这一目的。目前大部分基于Webkit的浏览器已经支持。Opera并没有提供可以实现不发送referrer的方法,Firefox也不支持。

    提供跨浏览器支持的更好的办法是使用一个第三方的库noreferrer.js,它可以自动识别浏览器并选择最优方案。实现方式利用google url中转,国内环境不行。

    跨浏览器解决方案,做一个自己网站的中转页。例如百度,搜索结果页跳转都会经过一个中转页。

    百度中转页做了哪些事

    bVbO8sh从referer剥离参数wd,保护用户隐私

    新窗口打开中间页面

    验证点击真实性

    百度在这个中间页调用了window.opener.bds.pdc.sendLinkLog(); 即在百度搜索结果页调用sendLinkLog()统计方法,验证是不是真实点击,因为如果不是从搜索结果页进入,是不存在这个方法的。虽然不能杜绝虚假模拟点击,这很大程度上过滤掉了许多爬虫和低级的虚假点击,为点击数据真实性加了“双保险”。剥离Opener,保障安全

    跳转到目标页面

    参考内容

    展开全文
  • 网页中怎么查看请求头header信息

    万次阅读 多人点赞 2018-10-31 22:57:41
    打开网页,以百度为例,打开后按F12键打开chrome开发者工具,刷新网页后找到Network在network界面找到headers菜单,往下拉找到User-Agent信息,如下图所示: ...
  • 请求头的使用,看了就会
  • 1、按F12,出现以下页面,此时是看不到请求头的信息的 2、接下来按住漏斗形状的图标 3、接下来出现了请求头的信息Headers
  • requests爬虫请求头获得方法

    千次阅读 2020-12-20 17:38:13
    request爬虫请求头获得方法 以Chrome为例: 首先,随便打开一个网页,Ctrl+Shift+I:检查快捷键,之后会弹出一个窗口,类似于这样: 之后,第二步,按照屏幕中间的提示:Ctrl+R,窗口会加载一些网页元素,类似如下...
  • 求解!我用谷歌也是这样,为什么和别人的界面不一样?爬虫刚刚入门
  • 响应: 响应,由服务端返回给客户端,可以分为三部分:响应状态码(Response Status Code)、响应(Response ...网页请求常见响应码: 状态码 说明 详情 100 继续 请求者应当继续提出请求。服务器已经接收到
  • 网页请求流程

    千次阅读 2018-07-23 17:50:19
    从浏览器输入网址,回车后,到用户看到网页内容,经过的步骤如下: (1)DNS解析,获取IP地址; (2)建立TCP连接,3次握手; (3)发送HTTP请求报文; (4)服务器接收请求并作处理; (5)服务器发送HTTP响应报文...
  • HTTP请求行、请求头、请求体详解

    千次阅读 2018-03-12 10:00:49
    转载于 http://blog.csdn.net/u010256388/article/details/68491509 引用 学习Web开发不好好学习HTTP报文,将会“打拳不练功,到老... ...nbsp;HTTP请求报文由3部分组成(请求行+请求头+请...
  • HTTP与HTTPS以及HTTP协议的请求头与响应头HTTP与HTTPSHTTP请求头和响应头,请求方式及响应码请求报文请求行请求头响应报文状态行HTTP响应头 HTTP与HTTPS HTTP:超文本传输协议(HyperText Transfer Protocol),是...
  • 请求网页爬取的时候,输出的text信息中会出现抱歉,无法访问等字眼,这就是禁止爬取,需要通过反爬机制去解决这个问题。 headers是解决requests请求反爬的方法之一,相当于我们进去这个网页的服务器本身,假装自己...
  • 请求URL 接口状态:200 http的版本信息 Accept:浏览器能够处理的内容类型 Accept-Charset:浏览器能够显示的字符集 Accept-Encoding:浏览器能够处理的压缩编码 Accept-Language:浏览器当前设置的语言 ...
  • python爬虫学习-定制请求头

    千次阅读 2021-12-06 19:31:40
    请求头Headers提供了关于请求、响应或其他发送实体的信息。 下面以某书上的教程为例,查找正确的请求头。 通过chrome浏览器的”检查“命令,单击Network选项,在左侧的资源中找到需要请求的网页,单击需要请求的...
  • http请求头详解and爬虫

    千次阅读 2017-10-24 20:40:47
    爬虫离不开http协议,在模拟请求的时候,请求头...请求头大小写识别,首字母大写。文中client,客户端,浏览器为同义语。 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8 Accep
  • HTTP -> 请求头

    千次阅读 2021-12-08 14:28:53
    文章目录常规请求响应 常规 请求网址: http://192.168.0.25:8284/XML.xml 请求方法: GET 状态代码: 200 远程地址: 192.168.0.25:8284 引荐来源网址政策: strict-origin-when-cross-origin 请求网址、请求方法、...
  • Chrome浏览器。 打开你想查询的网站,按F12,或者鼠标右键一下选择检查。会弹出如下的审查元素页面: ... 此时在按Ctrl+R:(重载窗口) ...选择Headers选项,其中就会有Request Headers,包括你需要的信息。...
  • 请求网页爬取的时候,输出的text信息中会出现抱歉,无法访问等字眼,这就是禁止爬取,需要通过反爬机制去解决这个问题。headers是解决requests请求反爬的方法之一,相当于我们进去这个网页的服务器本身,假装自己...
  • 理解网页请求过程

    千次阅读 2016-12-26 16:04:11
    在浏览器输入:http://www.baidu.com/,最后,浏览器呈现出相应网页,这个过程究竟发生了什么? 第一步,解析域名,找到主机IP (1)浏览器会缓存DNS一段时间,一般2-30分钟不等。如果有缓存,直接返回IP,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,967
精华内容 20,786
关键字:

网页请求头怎么找