今天开始学习http协议,把自己从网上整理,自己理解的部分先发出来,共勉!

(PS笔者小白一枚,如有理解性的错误,请指正告知,为感!!!)

一、  HTTP协议概念

  所谓的“协议”是指,计算机在通信网络中俩台计算机之间进行通信所必须共同遵守的规定或者规则。http(超文本传输协议)是一种通信协议,它允许将HTML(超文本标记语言)文档从web服务器传送到客户端的浏览器。

目前普遍使用的是HTTP/1.1版本

二、  web服务器,浏览器以及代理服务器

在浏览器中输入URL,点击回车,然后我们就可以看到一个我们想要得到的网页。这个原理是如何的呢?

如上图所示:

在向浏览器中输入url过后,浏览器会向Web服务器(web server)发送出一个request(请求),web服务器接收到request之后进行处理,生成相应的response(响应),然后返还给浏览器,浏览器通过解析response中的html,再生成相应的网页,这就是我们看见的网页内容。

注:在request和response传输过程中可能也会经过Proxy Server(代理服务器),最后才到达服务器或者返回到浏览器,如下图所示:

代理服务器:所谓的代理服务器通俗上理解就是一个网络信息的中转站,它相当于一个电脑中的Cache(即快速缓存区,通常代理服务器都设有一个较大的硬盘缓冲区)。这样在进行访问请求时,就会优先先从此缓存区中查找,如果之前有过该类请求就会快速进行响应;如果没有,就会继续进行正常的请求访问。所以使用Proxy Server可以提高访问速度。代理服务器还有一个大家普遍知道的功能---用于翻墙,可突破国内网站限制访问国外网站资源。另外proxy server还提供大量的伪IP地址,用户可以通过这些伪IP地址访问资源,隐藏自己的身份。

三、  URL解读

URL:统一资源定位符(Uniform Resource Locator),指的是Internet文件在网上的地址。其基本格式如下:

 schema://host[:port#]/path/.../[?query-string][#anchor]

1、  Schema(模式/协议):用于指定所使用的是何种协议,告诉浏览器如何处理将要打开的文件。最常用的协议模式是http(超文本传输协议),这个协议可用来访问网络。其他常用协议如下:

http:超文本传输协议

https:用安全套接字层传送的超文本传输协议

ftp:文件传输协议

mailto:电子邮件地址

ldap:轻型目录访问协议搜索

file:本地电脑或网上分享的文件

telnet:Telnet协议

2、  host:http服务器的IP地址或者域名

3、  port#:http服务器默认端口是80,这种情况下端口号可以省略。但是如果使用其他的端口号,则必须指明,例如:http://192.168.1.45:2400/XXX

4、  path:访问资源的路径

5、  query-string:发送给http服务器的数据

6、  anchor: 锚

实例:

http://192.168.10.474:1100/study/8000/shoxxDetail.jsp?order_id=3210000xx_228312&id=144

schema:使用的是http协议

host:192.168.10.474

port:1100

path:/study/8000/shoxxDetail.jsp?

query-string:order_id=3210000xx_228312&id=144

。。。。后面再补,开会去了~~~~

HTTP笔记整理(1)的更多相关文章

  1. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  2. 从0开始学Swift笔记整理(五)

    这是跟在上一篇博文后续内容: --Core Foundation框架 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Sw ...

  3. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  4. 学习ReactNative笔记整理一___JavaScript基础

    学习ReactNative笔记整理一___JavaScript基础 ★★★笔记时间- 2017-1-9 ★★★ 前言: 现在跨平台是一个趋势,这样可以减少开发和维护的成本.第一次看是看的ReactNa ...

  5. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  6. Deep Learning(深度学习)学习笔记整理系列之(七)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  7. Deep Learning(深度学习)学习笔记整理系列之(六)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  8. Deep Learning(深度学习)学习笔记整理系列之(四)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. Deep Learning(深度学习)学习笔记整理系列之(三)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  10. Deep Learning(深度学习)学习笔记整理系列之(二)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

随机推荐

  1. [问题记录.VisualStudio]TFS项目映射问题解决

    [问题描述] Visual Studio 2013 中打开用TFS源码管理的项目失败! 1.对特定的项目,不管是通过解决方案文件(.sln)还是项目文件(.csproj)打开,都显示项目无法加载. 2 ...

  2. 四元数(Quaternions)简介

    经常在代码中看到Quaternions,也知道它是用来表达三维空间的旋转的,但一直没有更深的理解.这两天终于花点时间看了看维基百科的介绍,算是多了解了点.做个记录吧! 本质上而言,四元数是一个数学概念 ...

  3. php 中遍历数组时使用引用出现的问题

    今天在使用foreach遍历数组时发现,当使用&时会出现问题: $arr = array( array('id' => 100, 'error'=> 'aa'), array('i ...

  4. jvm、jre、jdk

    JVM和JRE浅谈 Java运行时环境JRE包含:Java虚拟机.库函数.运行Java应用程序和Applet所必须的文件,JDK(又称SDK)包含:JRE的超集.编译器.调试器等开发工具. java平 ...

  5. SQL查询符合条件的记录的总数

    1. select count(*) from table;    //统计元组个数 2. select count(列名) from table;  //统计一列中值的个数 3. select co ...

  6. JSP中添加弹出框

    JSP中添加弹出框 %> <script language="javascript" type="text/javascript"> aler ...

  7. MySQL数据库安装与配置详解

    转载提示:在原文http://www.cnblogs.com/sshoub/p/4321640.html基础上修改. 目录 一.概述 二.MySQL安装 三.安装成功验证 四.NavicatforMy ...

  8. uglifyjs2压缩混淆js文件

    uglifyjs可以用来压缩混淆js文件,发布release版本应用利器.在StackOverflow浏览了一下,相比Google Closure和YUI compressor,uglifyjs被推荐 ...

  9. 和以往印象不同的Java

    Java编程概述 一个Java源文件至多有一个public类,但是可以有很多class的定义 public static void main (String args[]) public 代表公共的, ...

  10. 自定义actionbar标题

    这是我自己封装的一个activity,主要作为所有Activity的基类,可以一键关掉所有的activity, 并共享一个自定义actionbar.直接切入主题吧. 第一步就是创建自定义标题的布局文件 ...