url基础知识
浏览器通过url访问服务器步骤
①浏览器解析出url中的服务器名称
②浏览器将服务器名称解析成ip(DNS解析)
③浏览器解析出url中的服务器端口(如果有端口的话)
④浏览器建立和web服务器的TCP连接
⑤浏览器向服务器发送http请求报文
⑥服务器向浏览器发送http响应报文
⑦关闭连接,浏览器展示响应的文档
从浏览器到服务器的访问涉及到的OSI(开放系统互联(Open System Interconnection))层有: http 协议层,TCP 传输层, IP 网络层 ,网络特有的链路端口 数据链路层,物理网络硬件 物理层。其实共有七层,在协议层和传输层中还有表示层和会话层
关于OSI七层协议的详细的解释有
http://blog.csdn.net/xw20084898/article/details/39438783
url通用组件:
方案、用户、密码、服务器名称、端口、资源路径、参数、查询、片段
方案有:http、ftp、smtp
用户,密码:访问服务器的时候用的凭证(一般都没有)
服务器名称:www.xxx.com/www.xxx.cn这样的域名
端口:需要访问服务器的端口
资源路径:在端口下的根路径开始寻找请求的路径,如users/login.jsp
参数:请求的参数,如type=d。与之前的路径用‘;’隔开(一般也没有)
查询:以‘?’开始,‘&’拼接多个查询条件,如?id=1&username=abc
片段:以‘#’开始,在请求回完整数据后选择显示片段名这个部分的数据。如:#drill
url字符集:ASCII码+转义序列集
url编码机制:在表示不安全字符的时候把不安全字符进行编码
如:‘%’ 编码成 %0x25, '~' 编码成 %0x7e, ' '编码成%0x20
url基础知识的更多相关文章
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- Shiro第一篇【Shiro的基础知识、回顾URL拦截】
Shiro基础知识 在学习Shiro这个框架之前,首先我们要先了解Shiro需要的基础知识:权限管理 什么是权限管理? 只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安 ...
- Shiro入门这篇就够了【Shiro的基础知识、回顾URL拦截】
前言 本文主要讲解的知识点有以下: 权限管理的基础知识 模型 粗粒度和细粒度的概念 回顾URL拦截的实现 Shiro的介绍与简单入门 一.Shiro基础知识 在学习Shiro这个框架之前,首先我们要先 ...
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- HTML基础知识
一个完美的web前端攻城狮,所具备的专业素养有:HTML5.XHTML.CSS3.JavaScript.JQuery.PS.PHP等.所以说,我要学的东西还有很多... 没别得,我也是一个H5的初学者 ...
- javascript中BOM部分基础知识总结
一.什么是BOM BOM(Browser Object Document)即浏览器对象模型. BOM提供了独立于内容 而与浏览器窗口进行交互的对象: 由于BOM主要用于管 ...
- IOS开发基础知识--碎片33
1:AFNetworking状态栏网络请求效果 直接在AppDelegate里面didFinishLaunchingWithOptions进行设置 [[AFNetworkActivityIndicat ...
- 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
随机推荐
- python中while循环和for循环的定义和详细的使用方法
1. 循环的定义,反复做某事,具有明确的开始和结束. 2. 在Python中循环有while和for两种方式: While循环:1) 语法结构 >>> while 条件: ... ...
- netty+proto使用简要记录
1. maven环境配置protobuf 2.生成.proto文件 3.将.proto转为java文件 打开电脑的cmd,进入.proto所在文件位置,输入命令:protoc.exe --java_o ...
- tomcat 在liunx中shutdown后进程仍然存在的两种实用解决办法
方法一: 查找tomcat进程并kill ps -elf | grep ${ctompath} | grep -v grep | awk '{print $4}' | xargs kill -9 此处 ...
- elasticsearch(全文检索)的介绍和安装
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...
- tomcat启动项目的时候不报错而且启动的很快
最后发现是tomcat部署项目的时候,并没有将一部分文件复制到tomcat的目录下 方法 将没有添加的目录 Finish
- Mysql Mariadb 密码问题
mysql密码遗忘和登陆报错问题 mysql登录密码忘记,其实解决办法很简单,只需要在mysql的主配置文件my.cnf里添加一行“跳过授权表”的参数选择即可! 在my.cnf中添加下面一行:[r ...
- Netty源码分析第1章(Netty启动流程)---->第3节: 服务端channel初始化
Netty源码分析第一章:Netty启动流程 第三节:服务端channel初始化 回顾上一小节的initAndRegister()方法: final ChannelFuture initAndRe ...
- [转载]GB2312简体中文编码表
编码表源地址:http://www.knowsky.com/resource/gb2312tbl.htm编码在线查询:http://www.qqxiuzi.cn/bianma/zifuji.phpGB ...
- Cocoapods更改安装版本及卸载、ruby版本检测和安装
修改于:2017.1.10 我们实际过程中会遇到很多的问题,并且各式各样,特别是各种系统.工具版本升级后遇到的问题,最后的杀手锏就是彻底删干净,重装. 一. 移除pod组件 这条指令会告诉你Cocoa ...
- IntelliJ IDEA 自动编译功能无法使用,On 'update' action:选项里面没有update classes and resources这项
https://zhidao.baidu.com/question/1381265197230335740.html