처음 http 프로토콜을 배울 때 이 두 용어가 비슷해서 헷갈려서 많은 정보를 확인하고 드디어 알아냈습니다. (정보를 찾아보면 아직 영어로 되어 있어서 믿을만 합니다...)
에서 많은 기술적 논란이 있었는데, 가장 멋진 것은 웹 주소를 어떻게 불러야 하는가입니다. 이것은 대개의 경우입니다. 누군가가 주소 표시줄의 내용을 "URL"이라고 부릅니다. 이때 어떤 사람들은 "아니요! 사실 URI는..."이라고 말합니다. 일반적으로 이런 종류의 반응은 여러 가지입니다. 이런 상황에서는 그냥 이 사람이 쪼잔하면 빨리 나가야 한다고 생각하고, 침착하면 어깨를 으쓱하고 동의하고, 화나면 칼을 뽑아서 싸우면 된다. 이 글은 결국 이것에 대한 간단한 요약을 제공하는 것 뿐이니까요. URI, URL, URN위 그림에서 볼 수 있듯이 URI, URL, URN 세 가지 개념이 있습니다. 이러한 문제를 논의할 때 가장 좋은 방법은 RFC의 시작점으로 돌아가는 것입니다. 3986: URI(Uniform Resource Identifier): 일반 구문은 다음과 같은 정보를 수집합니다. "URI(Uniform Resource Identifier)는 추상 또는 물리적 리소스를 식별하는 데 사용되는 압축 문자열입니다." "URI는 로케이터, 이름 또는 둘 다. "Uniform Resource Locator"(URL)라는 용어는 리소스를 식별하는 것 외에도 해당 리소스(예: 네트워크 "위치")를 찾기 위한 기본 액세스 메커니즘을 제공하는 URI의 하위 집합입니다. "그럼 우리의 전지적 위키피디아는 이 단락을 아주 잘 소화하고 더 생생하게 설명했습니다. "URI는 URL, URN 또는 사람 이름과 마찬가지로 로케이터와 이름의 특성을 모두 갖는 것으로 나눌 수 있습니다. URL은 사람의 주소와 같습니다. 즉, URN은 무언가의 신원을 결정하고 URL은 이를 찾는 방법을 제공합니다.
http://
또는 ftp://
. http://
or ftp://
.。
URN是唯一标识的一部分,就是一个特殊的名字。
下面就来看看例子吧,当来也是来自权威的RFC:
ftp://ftp.is.co.za/rfc/rfc1808.txt
(also a URL because of the protocol)
http://www.ietf.org/rfc/rfc2396.txt
(also a URL because of the protocol)
ldap://[2001:db8::7]/c=GB?objectClass?one
(also a URL because of the protocol)
mailto:John.Doe@example.com
(also a URL because of the protocol)
news:comp.infosystems.www.servers.unix
(also a URL because of the protocol)
tel:+1-816-555-1212
telnet://192.0.2.16:80/
(also a URL because of the protocol)
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
这些全都是URI, 其中有些事URL. 哪些? 就是那些提供了访问机制的.
总结
下面到了回答问题的时候了:
当我们替代web地址的时候,URI和URL那个更准确?
基于我读的很多的文章,包括RFC,我想说URI更准确。
别急,我有我的理由:
我们经常使用的URI不是严格技术意义上的URL。例如:你需要的文件在files.hp.com
URN은 특수한 이름인 고유 식별자의 일부입니다.
권위 있는 RFC의 예를 살펴보겠습니다. 🎜🎜ftp://ftp.is.co.za/rfc/rfc1808.txt
(프로토콜 때문에 URL이기도 함)🎜🎜🎜🎜http://www.ietf.org/rfc/rfc2396.txt
(프로토콜 때문에 URL이기도 함)🎜🎜🎜🎜ldap://[2001:db8::7]/c=GB?objectClass?one (프로토콜 때문에 URL이기도 함)🎜🎜🎜🎜mailto:John.Doe@example. com
(프로토콜 때문에 URL이기도 함)🎜🎜🎜🎜news:comp.infosystems.www.servers.unix
(프로토콜 때문에 URL이기도 함)🎜🎜🎜🎜tel:+1-816-555-1212🎜🎜🎜🎜telnet://192.0.2.16:80/
(프로토콜 때문에 URL이기도 함)🎜🎜🎜🎜 urn:oasis:names:specation:docbook:dtd:xml:4.1.2
🎜🎜🎜 이것들은 모두 URI이며, 그 중 일부는 액세스 메커니즘을 제공하는 것입니다. .🎜🎜 요약🎜🎜이제 질문에 답할 시간입니다.🎜🎜웹 주소를 바꿀 때 URI와 URL 중 어느 것이 더 정확합니까? 🎜🎜RFC를 포함하여 내가 읽은 많은 기사에 따르면 URI가 더 정확하다고 말하고 싶습니다. 🎜🎜걱정하지 마세요. 이유가 있습니다. 🎜🎜우리가 자주 사용하는 URI는 엄밀한 기술적인 의미에서 URL이 아닙니다. 예를 들어, 필요한 파일은 files.hp.com
에 있습니다. 이것은 URI이지만 URL은 아닙니다. 시스템은 많은 프로토콜과 포트에 올바르게 응답할 수 있습니다. 🎜🎜##################################3🎜🎜Java Access 주소에서 브라우저 받기 정보 🎜3 request * request对象,tomcat根据http协议的请求的内容,将相应的数据封装到request对象中。 * request和response必须是成对出现,先有的request,再有的response * 接口:javax.servlet.http.HttpServletRequest extends javax.servlet.ServletRequest * 实现类:tomcat实现,并在请求时,tomcat创建 。 * 请求行 * 入口:http://localhost:8080/day05/demo/pathRequestServlet?username=jack&password=1234 * 请求方式 request.getMethod(); * 路径 // * 请求资源路径 // 1 获得servlet路径,web.xml配置的url-pattern【★★★】 String servletPath = request.getServletPath(); System.out.println(" 1 servletPath -->" + servletPath); //--> /demo/pathRequestServlet //2 获得发布到tomcat时的项目名称【★★★】 String contextPath = request.getContextPath(); System.out.println(" 2 contextPath -->" + contextPath); //--> /day05 //3 获得请求行中的资源路径 String requestURI = request.getRequestURI(); System.out.println(" 3 requestURI -->" + requestURI);//-->/day05/demo/pathRequestServlet //4 获得请求URL(地址栏书写) String requestURL = request.getRequestURL().toString(); System.out.println(" 4 requestURL -->" + requestURL);//-->http://localhost:8080/day05/demo/pathRequestServlet // *** 以上都不获得get请求的参数 //5 获得get请求的参数,获得的是所有参数的一个字符串 String queryString = request.getQueryString(); System.out.println(" 5 queryString -->" + queryString); //-->username=jack&password=1234 * 协议 request.getProtocol(); * 请求头 * java.lang.String getHeader(java.lang.String name) 获得指定名称的头信息(一条)【★★★】 * long getDateHeader(java.lang.String name) 获得特殊数据,时间 * int getIntHeader(java.lang.String name) 获得特殊数据,整型 * java.util.Enumeration getHeaderNames() 获得所有的请求头的名称 * java.util.Enumeration getHeaders(java.lang.String name) 获得指定名称头的所有内容 * 实例:防盗链,(不能直接访问 /refererTwoServlet) * 请求体 * ServletInputStream getInputStream() 获得请求体的所有内容。(之后讲,文件上传) * 核心API * 属性操作 * xxxAttribute (set / get / remove) 服务器端【★★★】 * 获得参数 * 获得浏览器 发送给 服务器端的参数(Parameter) * API【★★★】 * 实例:url?username=jack&username=rose&username=tom&password=1234 * getParameter(java.lang.String name) 获得指定参数的第一个值,如果数据不存在获得null 。 * 例如:getParameter("username") 获得 jack * java.lang.String[] getParameterValues(java.lang.String name) 获得指定参数的所有的值。 * 例如:getParameterValues("username") ,获得[jack,rose,tom] * java.util.Map<String,String[]> getParameterMap() 获得所有的内容,key 参数的名称 ,value 该参数的所有的值 * 例如:{username=[jack,rose,tom],password=[1234]} * 中文乱码 * POST请求【★★★】 * 设置 setCharacterEncoding(java.lang.String env) ,设置字符编码 * GET请求 * new String(username.getBytes("ISO-8859-1"), "字符集");
위 내용은 URL과 URI의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!