`
lzj0470
  • 浏览: 1277162 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

HTTP请求头(HTTP Request)

    博客分类:
  • java
阅读更多

HTTP是一个请求/回应协议,计算机发送一个请求(如:给我‘home.html’这个文件),然后服务器就送回一个响应(呐,这个就是你要的文件,后面跟着的就是home.html文件)。
  HTTP Request包含内容说明:例,访问http://djce.org.uk/dumprequest 。使用Sniffer工具捕获信息如下:
  GET /dumprequest HTTP/1.1
  User-Agent: Opera/9.63 (Windows NT 5.1; U; Edition IBIS; zh-cn) Presto/2.1.1
  Host: djce.org.uk
  Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
  Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
  Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
  Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
  Referer: http://www.google.cn/search?hl=zh-CN &newwindow=1&q=http+request&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=0&oq=http+req
  Pragma: no-cache
  Cache-Control: no-cache
  Connection: Keep-Alive
  分析如下:
  1、源IP地址、端口和代理
  Source IP address:    58.248.112.83
  Source port:    2482
  Via:    not present
  X-Forwarded-For:    not present
   为了收到服务发回来的回应,必须告诉服务器发送方的IP、端口。另一方面,也可以通过一个或多个代理服务器访问。如果HTTP Request中包含了“Via”或“X-Forwarded-For”,强烈指示了至少是通个一个代理服务的。如查这两项都没包含,则没有通过代理服务 器,或是仅仅通过不加“Via” / “X-Forwarded-For”头来选择不“显示”。
  2、目标IP地址、端口、主机和协议
  Destination IP address:    91.84.196.2
  Destination port:    80
  Host:    djce.org.uk
  Protocol:    HTTP/1.1
  这些头告诉我们试图访问哪个Web 服务器,一个服务器上有许多网站,所以用IP和Host确定到底访问哪个网站。协议一般为HTTP/1.0或HTTP/1.1之一,由浏览器的属性和经过的代理所决定。
  3、请求的URI(通用资源标识符)
  Requested URI:    /dumprequest
  与“Host”头和目标端口一起,详细指定了想要取回的文档。根据给定的所有值,我们要得到要访问的文档的URL为:http://djce.org.uk/dumprequest
  4、请求方法和内容:
  Request method:    GET
  Data:    none
  请求方法有两种,要不是“GET”,要不就是“POST”。基本上要在网页上填一个表单然后递交的话,一般产生一个POST请求(也有可能是GET),而通过点击一个链接、或书签或收藏夹的,请求方法通常是GET。
   如是是POST的话,表单要明确地递交,“Content-”头描述了递交的数据。浏览器产生两种POST数据,一种是 “multipart/form-data”,用于上传文件,另一种就是普通的“application/x-www-form- urlencoded”。
  5、用户代理(User agent)
  User-Agent:    Opera/9.63 (Windows NT 5.1; U; Edition IBIS; zh-cn) Presto/2.1.1
   Accept:    text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
  Accept-Charset:    iso-8859-1, utf-8, utf-16, *;q=0.1
  Accept-Encoding:    deflate, gzip, x-gzip, identity, *;q=0
  Accept-Language:    zh-CN,zh;q=0.9,en;q=0.8
  User-Agent头:描述了用户浏览器,典型的它包含了浏览器名称和版本(如Firefox 1.0.7)、操作系统和版本(如Window XP)和可能的附加信息(如装了哪个系统补丁)。
  “Accept”头:描述浏览器可以处理的各种事物,如果有选择的话宁可给出各种类型。“Accept”头本身描述了浏览器可以处理的文档类型,比如告诉服务器浏览器有能力处理“image/png”图像。
  “Accept-Charset”头:描述可以接受何种字符集。通过这个可以猜测用户使用什么语言,如西欧和北美通常仅用“iso-8859-1”、“us-ascii”、“uft-8”,若出现“big5”则可能是台湾。
  “Accept-Encoding”头:描述浏览器处理文档压缩传输的能力。
  “Accept-Langage”头:告诉服务器你较喜欢接收哪种语言的文档(如果服务器有提供选择的话)。
  6、来源页(Referring Page)
  Referer:    http://www.google.cn/search?hl=zh-CN &q=http+request&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=f&oq=
  “ Referer”头:告诉服务器是从哪个页面链接进来的。上面例子中就表示从Google搜索引擎链接进来的。如果是点击书签或直接输入网址的话,Refere头将缺失。
  7、Cookies
  Cookie:    not present
   每次Web服务器提供给用户一个回应(一个页面、图像等),它有机会向用户浏览器发送一个“Cookie”,Cookie是用户浏览器保存的一小片信 息,可以在随后发送请求文档时送回给同一个Web服务器。(1)Cookie只能被送回与第一次发过来的同一个Web服务器;(2)Cookie的内容只 包含服务器能够知道的信息。
  8、连接控制
  Connection:    Keep-Alive, TE
  Keep-Alive:    not present
  这个头用于微调网络交通。Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
  9、缓存控制
  Pragma:    not present
  Cache-Control:    not present
  If-Modified-Since:    not present
  这个头用于控制文档缓存。通过检查它们,可以检测到用户是否使用“刷新”按钮来强制重新载入文档。
  比如用Mozila的刷新按钮,它会将“Cache-Control” 设为 “max-age=0”,而MSIE5.5会设为“no-cache”。
  10、授权
  Username:    not present
  当登录到一个Web服务器时,客户的用户名出现在这里。注,仅用于正规的HTTP认证。即一个弹出登录框,有三次机会输入用户密码。
  有时在URL中输入用户名密码,如http://user:password@www.example.com/ ,这种情况下,用户名也会显示在这里。
  总结:
  请求头中包含比较有趣的信息片:
  源IP地址
  HTTP代理服务器
  请求的是哪个文档
  使用的浏览器版本
  是从哪里链接过来的
  优先的语言
  Cookies
  Cookies中有些信息可以明显看得出是什么意思,如LastLoginName=Jred。但更多的内容很难知道是什么意思,只有服务器能理解,如TGIDX=wl4o6ulhw48lw845yh68hylohw45。

分享到:
评论

相关推荐

    详解nginx请求头数据读取流程

    当请求行解析完成后,Nginx会调用`ngx_http_process_request_headers()`方法来处理请求头。 `ngx_http_process_request_headers()`是请求头读取的主要流程。这个方法的主要任务是从输入缓冲区中读取数据,直到找到...

    如何伪造IP 发送HTTP请求request

    在某些特殊场景下,比如测试、安全研究或模拟用户行为,可能会有需求伪造IP地址来发送HTTP请求。然而,值得注意的是,这种行为可能涉及违反网络安全法规,因此在实际操作中需谨慎。 伪造IP发送HTTP请求通常涉及到...

    JSP获取HTTP header信息(request)例子

    HTTP请求头(Request Headers)是HTTP请求的一部分,它包含了客户端向服务器发送的元数据。这些元数据可以帮助服务器更好地处理请求,例如选择合适的响应内容类型或设置缓存控制策略等。常见的HTTP请求头包括但不...

    URLInterceptor修改request的请求头信息

    该类是放到拦截器中的,可以拦截访问对servlet的header头进行反射修改!希望能帮到大家,谢谢!

    HTTP请求头信息对照表

    最全的HTTP Request Header HTTP请求头信息对照表!最全的HTTP Request Header HTTP请求头信息对照表!

    chrome插件修改请求头

    修改chrome的请求头。 Header Editor是一款管理浏览器请求的Chrome扩展,包括修改请求头、修改响应头、重定向请求、取消请求。  您可以从Redirector导入规则  规则说明:  1、匹配类型  规则会应用到满足相应...

    Java中Request请求转发详解

    Java中Request请求转发详解 Java中Request请求转发是指在Servlet中使用RequestDispatcher将请求转发到另一个Servlet或JSP页面,以实现请求的重定向或包含。在本文中,我们将通过示例代码详细介绍Java中Request请求...

    filter对request请求拦截,对请求参数进行修改

    对request请求进行拦截,对请求参数修改。常用于前台提交表单参数关键字的过滤。此工具可以对参数拦截并转义后提交到对应的处理类。 除了添加两个JsFilter.java和GetHttpServletRequestWrapper.java之外,需要在web....

    C# Request请求类

    C# Request请求类 直接进行封装Request后台请求,非WebClient。 摘要必须大于50个字! 摘要必须大于50个字!

    JavaWeb开发技术-HTTP请求头.pptx

    在 HTTP 协议中,请求头(Request Header)是指客户端向服务器发送请求时,所携带的一些附加信息。这些信息可以是身份验证信息、客户端信息、缓存信息、代理信息等。请求头的格式为“名称:值”,例如“Accept:text...

    http、restTemplate请求资源(含带头部信息)

    在Java开发中,`RestTemplate`是Spring框架提供的一种方便的发送HTTP请求的工具,可以用来执行GET、POST等各种HTTP方法,并处理响应。 首先,我们来详细了解GET和POST两种HTTP请求方法: 1. GET请求:GET是最常见...

    过滤器拦截并处理request请求

    例如,在标题提到的情景中,我们可以捕获`HttpServletRequest`对象(即request请求),对请求参数、请求头或请求体进行修改。这可能包括添加、删除或修改数据,甚至改变请求的方法(如GET转为POST)。此外,过滤器也...

    C#获取目标网址http头信息,比如状态码等等信息

    在C#编程中,我们需要经常处理HTTP请求,获取目标网址的HTTP头信息,例如状态码、响应时间、服务器类型等,这些信息对于分析网页状态、诊断网络问题以及构建Web应用程序非常有用。本文将深入探讨如何在C#中获取这些...

    调用http请求(包括head头部的请求)

    java后台请求http从而获取数据,这里支持头部参数,比如可以在头部加入orgCode、username、password等必填数据。可以达到postman请求效果

    http-request-action:在GitHub中创建HTTP请求

    HTTP请求动作通过GitHub Actions创建HTTP请求。 该操作允许GitHub事件与使用HTTP API的工具(如Ansible AWX)互动。例子jobs : deployment : runs-on : ubuntu-latest steps : - name : Deploy Stage uses : ...

    TP5 Request 请求对象

    以及HTTP头信息的获取: ```php $acceptLanguage = $request->header('accept-language'); ``` 此外,`Request`对象还可以帮助我们判断请求类型: ```php if ($request->isPost()) { // 处理POST请求 } ``` ...

    Volley修改超时时间和请求头源码

    在实际应用中,我们有时需要根据网络环境或业务需求调整Volley的默认设置,例如修改请求头(Request Headers)和超时时间(Timeouts)。本文将深入探讨如何通过源码修改这两项关键参数,以解决可能出现的多次调用...

    UniApp中封装request网络请求包含GET、POST、PUT、DELETE等

    在这个封装中,我们为GET、POST、PUT和DELETE方法提供了统一的调用接口,并在`request`函数中处理了基础的请求配置,如URL前缀、数据序列化、添加认证头以及错误处理。`showLoading`和`loadingText`用于显示加载提示...

    python爬虫实现POST request payload形式的请求

    HTTP请求中的Form Data和Request Payload的区别 #### 1.1.1. Form Data - **GET请求**:参数直接附加在URL后面,如`http://news.baidu.com/ns?word=NBA&tn=news&from=news&cl=2&rn=20&ct=1`。 - **POST请求**:...

    微信小程序开发:request请求后台获取不到data解决方法

    微信的request的post请求后台获取不到data(当初这个问题纠结了好久好久),原因是post传递的data是json格式而不是key,value的格式,所以获取不到相应的data就是post请求应为表单模式的data,微信小程序提供的data...

Global site tag (gtag.js) - Google Analytics