Java网络编程从入门到精通(3):为什么不能直接通过IP访问网站

简介:
 在《创建InetAdrress对象的四个静态方法》 一文中通过 getAllByName 得到了 www.csdn.net 对应的四个 IP 地址。从理论上说,在 IE (或其他的 Web 浏览器,如 Firefox) 的地址栏中输入这四个 IP 地址中的任何一个,都可能访 www.csdn.net 。如输入 http:// 211.100.26.124 。但 IE 却返回了一个错误信息。 在输入另外三个 IP 后,都会得到同样的错误信息。
这个错误并不是网页未找到错误(HTTP 状态号:404 ),而是拒绝访问错误(HTTP 状态号:403 )。当在地址栏中再输入http://www.csdn.net ,仍然可以访问这个网站。从以上种种迹象表明这并不客户端的问题,而是服务端对此做了限制。
HTTP 协议(这个协议会在下一章详细讲解)的请求头有一个Host 字段,一般通过http://www.csdn.net 访问服务器时,Host 的值就是www.csdn.net 。如果是http://  211.100.26.124 ,那么 Host 的值就是 211.100.26.124 。因此,我们可以推断, www.csdn.net 的服务器通过检测 Host 字段防止客户端直接使用 IP 进行访问。目前有很多网站,如 www.sina.com.cn www.126.com 都是这样做的。有一些网站虽然未限制用 IP 地址来访问,但在使用 IP 地址访问网站时,却将 IP 地址又重定位到相应的域名上。如输入 http://141.146.8.66 会重定位到 http://www.oracle.com/index.html 上,输入 http://129.42.60.212 会重定位到 http://www.ibm.com/us/ 上。
通过 ping 命令也可以得到一个域名的 IP 地址,如果域名绑定有之个 IP 地址, DNS 就随机返回一个 IP 地址。如在控制台输入下面的命令:
ping www.csdn.net
     返回结果
Reply from  211.100 . 26.122 : bytes = 32  time = 31ms TTL = 48
Reply from 
211.100 . 26.122 : bytes = 32  time = 35ms TTL = 48
 
     上面的返回结果中的IP 地址就是《创建InetAdrress对象的四个静态方法》一文中 MyInetAddress3 在测试1 中所得到的第三个IP 地址。




 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214817,如需转载请自行联系原作者

相关文章
|
24天前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
189 3
|
1月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
157 1
|
27天前
|
算法 Java 测试技术
零基础学 Java: 从语法入门到企业级项目实战的详细学习路线解析
本文为零基础学习者提供完整的Java学习路线,涵盖语法基础、面向对象编程、数据结构与算法、多线程、JVM原理、Spring框架、Spring Boot及项目实战,助你从入门到进阶,系统掌握Java编程技能,提升实战开发能力。
76 0
|
2月前
|
存储 缓存 NoSQL
java 集合入门基础理论的核心概念与实用长尾知识
本文介绍了Java集合框架的基础理论知识,包括单列集合(List、Set、Queue)和双列集合(Map)的特点及常用实现类(如ArrayList、HashSet、HashMap等)。详细讲解了集合的遍历方式(迭代器、增强for循环、Lambda表达式)和典型应用场景(如数据去重、键值存储等)。通过具体代码示例,帮助初学者理解集合框架的核心概念和实际应用,为Java编程中的数据存储与管理提供基础指导。
75 0
|
2月前
|
缓存 NoSQL Java
Java Web 从入门到精通之苍穹外卖项目实战技巧
本项目为JavaWeb综合实战案例——苍穹外卖系统,涵盖Spring Boot 3、Spring Cloud Alibaba、Vue 3等主流技术栈,涉及用户认证、订单处理、Redis缓存、分布式事务、系统监控及Docker部署等核心功能,助你掌握企业级项目开发全流程。
263 0
|
2月前
|
存储 安全 Java
Java 学习路线 35 掌握 List 集合从入门到精通的 List 集合核心知识
本文详细解析Java中List集合的原理、常用实现类(如ArrayList、LinkedList)、核心方法及遍历方式,并结合数据去重、排序等实际应用场景,帮助开发者掌握List在不同业务场景下的高效使用,提升Java编程能力。
286 0
|
3月前
|
并行计算 Java API
Java 入门循环结构基础知识点详解
摘要:本文介绍了Java现代循环技术的进阶应用,包括Stream API、响应式编程和模式匹配,展示了如何用Stream API替代传统循环进行声明式集合处理(如过滤、映射和并行计算),以及响应式编程在异步非阻塞场景下的优势。文章还通过电商订单处理系统的案例演示了这些技术的综合应用,并提供了性能优化建议,如合理使用并行处理和避免循环内对象创建。这些现代特性使Java代码更简洁、高效,更适合高并发和I/O密集型场景。
49 1
|
2月前
|
前端开发 Java API
基于 Spring Boot 3 与 React 的 Java 学生信息管理系统从入门到精通实操指南
本项目基于Spring Boot 3与React 18构建学生信息管理系统,涵盖前后端开发、容器化部署及测试监控,提供完整实操指南与源码,助你掌握Java全栈开发技能。
128 0
|
3月前
|
Oracle Java 关系型数据库
java 入门学习视频_2025 最新 java 入门零基础学习视频教程
《Java 21 入门实操指南(2025年版)》提供了Java最新特性的开发指导。首先介绍了JDK 21和IntelliJ IDEA 2025.1的环境配置,包括环境变量设置和预览功能启用。重点讲解了Java 21三大核心特性:虚拟线程简化高并发编程,Record模式优化数据解构,字符串模板提升字符串拼接可读性。最后通过图书管理系统案例,展示如何运用Record定义实体类、使用Stream API进行数据操作,以及结合字符串模板实现控制台交互。该指南完整呈现了从环境搭建到实际项目开发的Java 21全流程实
111 1
|
2月前
|
存储 安全 Java
从基础语法到实战应用的 Java 入门必备知识全解析
本文介绍了Java入门必备知识,涵盖开发环境搭建、基础语法、面向对象编程、集合框架、异常处理、多线程和IO流等内容,结合实例帮助新手快速掌握Java核心概念与应用技巧。
61 0

热门文章

最新文章