【深入分析Java Web】HTTP解析-常见请求头/响应头/状态码

简介: 转载请注明出处:http://blog.csdn.net/qq_26525215本文源自【大学之旅_谙忆的博客】B/S网络架构的核心是HTTP协议,掌握HTTP协议对一个从事互联网工作的程序员来说是非常重要的。

转载请注明出处:http://blog.csdn.net/qq_26525215

本文源自大学之旅_谙忆的博客

B/S网络架构的核心是HTTP协议,掌握HTTP协议对一个从事互联网工作的程序员来说是非常重要的。

要理解HTTP协议,最重要的就是要熟悉HTTP协议中的HTTP Header。

HTTP Header控制着互联网上成千上万的用户的数据的传输。

最关键的是,它控制着用户浏览器的渲染行为和服务器的执行逻辑。

例如,当服务器没有用户请求的数据时就会返回一个404状态码,告诉浏览器没有要请求的数据,通常浏览器就会展示一个非常不愿意看到的该页面不存在的错误信息。

下面来根据表格来了解常见的HTTP请求头、响应头以及状态码。

常见的HTTP请求头

请求头 说明
Accept-Charset 用于指定客户端接受的字符集
Accept-Encoding 用于指定可接受的内容编码,如Accept-Encoding:gzip.deflate
Accept-Language 用于指定一种自然语言,如Accept-Language:zh-cn
Host 用于指定被请求资源的Internet主机和端口号,如Host:www.chaojijuhui.com
User-Agent 客户端将它的操作系统、浏览器和其他属性告诉服务器l
Connection 当前连接是否保持,如Connection: Keep-Alive

常见的HTTP响应头

响应头 说明
Server 使用的服务器名称,如Server: Apache/1.3.6 (Unix)
Content-Type 用来指明发送给接收者的实体正文的媒体类型,如Content-Type:text/html;charset=GBK
Content-Encoding 与请求报头Accept-Encoding对应,告诉浏览器服务端采用的是什么压缩编码-一般写全站压缩的时候需要用到的
Content-Language 描述了资源所用的自然语言,与Accept-Language对应
Content-Length 指明实体正文的长度,用以字节方式存储的十进制数字来表示
Keep-Alive 保持连接的时间,如Keep-Alive: timeout=5, max=120

请求头和响应头,一般的浏览器进入开发者工具,监听网络都能看到的。
例如:
在(Firefox)火狐浏览器下,
首先:

然后:

再:

最后:看看响应头

请求头就在下面。

要看一个HTTP请求的请求头和响应头,可以通过很多浏览器插件来看,在Firefox中有Firebug和HttpFox,Chrome自带的开发工具也可以看到每个请求的请求头信息(可用F12快捷键打开),IE自带的调试工具也有类似的功能。

HttpFox:
火狐上安装HttpFox后,打开的快捷键:ctrl+shift+F2.

然后启动监听;

常见的HTTP状态码

状态码 说明
200 客户端请求成功
302 临时跳转,跳转的地址通过Location指定
400 客户端请求有语法错误,不能被服务器识别
403 服务器收到请求,但是拒绝提供服务
404 请求的资源不存在
500 服务器发生不可预期的错误
503 服务器暂时不可用

对于状态码,可以这么理解,便于记忆。

2xx(成功)2开头的状态码:
用于表示服务器已成功处理了请求的状态代码。

3xx(已重定向)3开头的状态码:
要完成请求,您需要进一步进行操作。通常,这些状态代码是永远重定向的。
Google 建议每次请求时使用的重定向要少于 5 个。

4xx(请求错误)4开头的状态码:
这些状态代码表示,请求可能出错,已妨碍了服务器对请求的处理。

5xx(服务器错误)5开头的状态码:
这些状态代码表示,服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。

参考文献-《深入分析Java Web技术内幕》
1.3章节

本文章由[谙忆]编写, 所有权利保留。

转载请注明出处:http://blog.csdn.net/qq_26525215

本文源自大学之旅_谙忆的博客

目录
相关文章
|
10月前
|
Java 开发者
重学Java基础篇—Java类加载顺序深度解析
本文全面解析Java类的生命周期与加载顺序,涵盖从加载到卸载的七个阶段,并深入探讨初始化阶段的执行规则。通过单类、继承体系的实例分析,明确静态与实例初始化的顺序。同时,列举六种触发初始化的场景及特殊场景处理(如接口初始化)。提供类加载完整流程图与记忆口诀,助于理解复杂初始化逻辑。此外,针对空指针异常等问题提出排查方案,并给出最佳实践建议,帮助开发者优化程序设计、定位BUG及理解框架机制。最后扩展讲解类加载器层次与双亲委派机制,为深入研究奠定基础。
406 0
|
11月前
|
Web App开发 数据采集 开发者
某查”平台请求头反爬技术解析与应对
某查”平台请求头反爬技术解析与应对
|
8月前
|
存储 算法 安全
JWT深度解析:现代Web身份验证的通行证为什么现在都是JWT为什么要restful-优雅草卓伊凡
JWT深度解析:现代Web身份验证的通行证为什么现在都是JWT为什么要restful-优雅草卓伊凡
472 41
JWT深度解析:现代Web身份验证的通行证为什么现在都是JWT为什么要restful-优雅草卓伊凡
|
6月前
|
缓存
|
10月前
|
JSON API 网络架构
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
1720 83
|
6月前
HTTP协议中常见的状态码 ?
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类。常见状态码包括:101(切换协议)、200(请求成功)、302(重定向)、401(未认证)、404(资源未找到)、500(服务器错误)。
615 0
|
6月前
|
Web App开发 缓存 数据安全/隐私保护
Django全栈实战:HTTP状态码与业务状态码的分层设计与实战应用
HTTP状态码是服务器响应请求的3位数字代码,分为1xx(信息)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误)。业务状态码则用于描述具体业务逻辑结果,常在响应体中返回。二者在前后端交互中有不同用途和处理方式。本文还介绍了如何在Django项目中设计并使用业务状态码。
571 0
|
8月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
842 20
|
10月前
|
存储 设计模式 Java
重学Java基础篇—ThreadLocal深度解析与最佳实践
ThreadLocal 是一种实现线程隔离的机制,为每个线程创建独立变量副本,适用于数据库连接管理、用户会话信息存储等场景。
387 5
|
10月前
|
存储 监控 安全
重学Java基础篇—类的生命周期深度解析
本文全面解析了Java类的生命周期,涵盖加载、验证、准备、解析、初始化、使用及卸载七个关键阶段。通过分阶段执行机制详解(如加载阶段的触发条件与技术实现),结合方法调用机制、内存回收保护等使用阶段特性,以及卸载条件和特殊场景处理,帮助开发者深入理解JVM运作原理。同时,文章探讨了性能优化建议、典型异常处理及新一代JVM特性(如元空间与模块化系统)。总结中强调安全优先、延迟加载与动态扩展的设计思想,并提供开发建议与进阶方向,助力解决性能调优、内存泄漏排查及框架设计等问题。
461 5

推荐镜像

更多
  • DNS