【深入分析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

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

目录
相关文章
|
6月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
630 1
|
6月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
728 0
|
7月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
793 64
|
7月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
498 1
|
8月前
|
缓存 NoSQL Java
Java Web 从入门到精通之苍穹外卖项目实战技巧
本项目为JavaWeb综合实战案例——苍穹外卖系统,涵盖Spring Boot 3、Spring Cloud Alibaba、Vue 3等主流技术栈,涉及用户认证、订单处理、Redis缓存、分布式事务、系统监控及Docker部署等核心功能,助你掌握企业级项目开发全流程。
849 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
最近在线上往hbase导数据,因为hbase写入能力比较强,没有太在意写的问题。让业务方进行历史数据的导入操作,中间发现一个问题,写入速度太快,并且业务数据集中到其中一个region,这个region无法split掉,处于不可用状态。
1521 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Hbase依赖的datanode日志中如果出现如下报错信息:DataXceiverjava.io.EOFException: INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in receiveBlock for block  解决办法:Hbase侧配置的dfs.socket.timeout值过小,与DataNode侧配置的 dfs.socket.timeout的配置不一致,将hbase和datanode的该配置调成大并一致。
947 0
|
Web App开发 Linux
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
内存是影响Linux性能的主要因素之一,内存资源的充足与否直接影响应用系统的使用性能。 free命令:监控Linux内存使用状况。
1317 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
如何获取设备特征码、版本号、激活码?方式一 第一步:打开凯立德移动导航系统,进入地图界面,点击“查找”第二步:在查找页面以“快拼”的输入方式下,输入“AAAAAA”(6个A)
1126 0

推荐镜像

更多
  • DNS