计算机网络 --万维网www
万维网是一个分布式的超媒体系统,客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所需要的万维网文档。
万维网必须解决的几个问题:
1、怎样标志分布在整个因特网上的万维网文档?
答:万维网使用统一的资源定位符URL(Uniform Resource Locator)来标志万维网上的各种文档,并使每一个文档在整个因特网的范围内具有唯一的标示符URL。
2、用怎样的协议来实现万维网上的各种链接?
答:使万维网客户程序与万维网服务器程序之间的交互遵守严格的协议,超文本传送协议HTTP(HyperText Transfer Protocol)。HTTP是一个应用层的协议,它使用TCP链接进行可靠的传递。
3、如何显示不同风格的页面?
答:超文本标记语言HTML
4、如何使用户很方便的找到所需的信息?
答:搜索工具,比如搜索引擎。
URL
URL的一般形式由以下四个部分组成:
<协议>://<主机>:<端口>/<路径>
协议一般为http或https,其次是ftp(文件传送协议FTP)
主机就是指该主机在因特网上的域名
端口和路径,有时可以省略,比如默认端口80,默认首页等
例如 http://www.tsinghua.edu.cn
用户使用URL并非仅仅能够访问万维网的页面,而且还能够通过URL使用其他的因特网应用程序,如FTP或USENET新闻组等。
HTTP
HTTP协议定义了浏览器(万维网客户端进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。HTTP是面向事务的应用层协议。
包括4步:
(浏览器提取a标签的网址)
(DNS解析:浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址,DNS反馈其IP给浏览器)
1、建立TCP连接(三次握手的前两次)
2、HTTP请求报文(握手的第三次,把HTTP请求报文作为TCP报文的数据发送给服务器)
3、HTTP响应报文
4、释放TCP连接
(浏览器显示响应的文本)
HTTP协议本身是无连接的。使用了TCP连接,无需建立HTTP连接。
HTTP协议是无状态的。第二次请求过程和第一次相同。这简化了服务器的设计,使服务器更容易支持高并发。
HTTP/1.0 是非持续连接的
HTTP/1.1 是持续连接的。
所谓持续连接就是服务器再发送响应后,仍然再一段时间内保持这条连接。这并不局限于传送同一个页面上链接的文档,只要是这个服务器上的就行。
HTTP/1.1 协议有两种工作方式
without pipelining 客户接受到一个请求后才能发送下一个请求
with pipelining 客户在接受到响应报文之前就能发送新的请求到服务器,减少了TCP连接的空闲时间,提高了效率。
代理服务器
proxy server,又称为 Web cache。
代理服务器把最近的一些请求和响应赞存在本地,当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,不需要根据URL再次访问因特网的资源。
HTTP的报文结构,CR代表回车,LF代表换行
请求报文:
方法 URL 版本CRLF(请求行)
首部字段名: 值CRLF(首部行 )
CRLF
(实用主体,通常不用,但是post一般会用)
响应报文:
版本 状态码 短语CRLF(请求行)
首部字段名: 值CRLF(首部行 )
CRLF
(实用主体,有些响应报文不用)
状态码 都是三位数字的,分为5大类,共33种。
1xx 表示通知信息的,如请求收到了或正在处理
2xx 表示成功
3xx 表示重定向
4xx 表示客户的差错,如请求中有错误的语法或不能完成
5xx 表示服务器的差错,如服务器失效无法完成请求
比如
200 Success
202 Accepted
301 Moved permanently
302 Moved Temporarily
400 Bad Request
404 Not Found
详细介绍http://baike.baidu.com/link?url=pmk-ihSjQD9fh9MQPifjB517O5bKnfdOcJnY0gcp1nP2ZfMTP5jOxvzbSgOUpnpe57sMbUMABZ1TTmYB3fWl1K
首部字段名有很多,常用的得了解,这里先写一些,以后更新
请求报文的首部字段名:
Connection: close(发送完文档就可以释放连接)
Cookie: 1312321312312
响应报文的首部字段名:
Location: http://www.xyz.edu (新的URL,重定向时使用)
Set-cookie: 1312321312312 (服务器给浏览器设置cookie)
详细的关于HTTP首部字段名的介绍
http://blog.csdn.net/linhaiman/article/details/7025336
HTML
现在是H5,正在学习当中,以后再补充
浏览器
这个,构造复杂,核心是HTML解释器,对于想学好js的同学,还是有必要了解的。
全文检索搜索引擎
google的特点
1、使用大量的小型机来代替少量的大型机,成功缩短访问高峰时的查找时间
2、核心技术PageRank,即网页排名
按照指向某个页面的连接的个数进行排名,并使用了稀疏矩阵来简化了计算量
(百度是按照某个网页访问量的进行排名,以及,按照金钱进行排名)
ok,作为一个学渣,突然明悟,果然是要学好数学的啊。
计算机网络 --万维网www的更多相关文章
- 计算机网络之万维网WWW
万维网 WWW (World Wide Web)并非某种特殊的计算机网络,而是一个大规模的.联机式的信息储藏所. 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰 ...
- 计算机网络之互联网|因特网|万维网|HTTP|HTML之间的关系辨析
本博文基于知乎"Web 是什么意思?"一问而引起.(本文均属于博主从知乎上自身所答搬运而至). 如无特殊声明,括号()内以分号分隔的名词均等效. 本文如无特殊引用声明,则所有内容版 ...
- [区分] 1.计算机网络/internet(互联网) 2.Internet(因特网) 3.www/web(万维网)
internet(互联网或互连网)是一个通用名词,泛指由多个计算机网络互联而成的虚拟网络.Inernet(因特网)是一个专用名词,指当前全球最大的.开放的.由众多网络相互连接而成的特定的计算机网络,它 ...
- 计算机网络及TCP/IP知识点(全面,慢慢看)
TCP/IP网络知识点总结 一.总述 1.定义:计算机网络是一些互相连接的.自治的计算机的集合.因特网是网络的网络. 2.分类: 根据作用范围分类: 广域网 WAN (Wide Area Networ ...
- 一些重要的计算机网络协议(IP、TCP、UDP、HTTP)
一.计算机网络的发展历程 1.计算机网络发展 与其说计算机改变了世界,倒不如说是计算机网络改变了世界.彼时彼刻,你我都因网络而有了交集,岂非一种缘分? 计算机与网络发展大致经历如下过程:
- python网络-计算机网络基础(23)
一.网络简介 网络是由节点和连线构成,表示诸多对象及其相互联系. 一个人玩: 两个人玩: 多个人玩: 说明 网络就是一种辅助双方或者多方能够连接在一起的工具 如果没有网络可想单机的世界是多么的孤单 使 ...
- 万维网WWW详解
万维网WWW(World Wide Web)并非某种特殊的计算机网络,万维网是一个个大规模的.联机式的信息储藏所,英文简称Web. 万维网使用链接的方式能非常方便地从英特网上的一个站点访问到一个站点, ...
- 万维网 WWW (World Wide Web)
万维网 WWW (World Wide Web)并非某种特殊的计算机网络.万维网是一个大规模的.联机式的信息储藏所.万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取 ...
- 哈工大计算机网络Week1-网络应用
目录 哈工大计算机网络Week1-网络应用 2.1网络应用的体系结构 特点 应采取什么结构 C/S结构 客户机/服务器 P2P CS vs P2P 混合结构 思考题目 2.2网络应用的基本原理 网络应 ...
随机推荐
- AC日记——队列安排 洛谷 P1160
队列安排 思路: 链表裸题: 来,上代码: #include <cstdio> #include <cstring> #include <iostream> usi ...
- Block为什么使用Copy?
block:本质就是一个object-c对象block:存储位置,可能分为3个地方:代码去,堆区.栈区(ARC情况下会自动拷贝到堆区,因此ARC下只能有两个地方:代码去.堆区)代码区:不访问栈区的变量 ...
- iOS地图多个自定义大头针绘制核心代码
首先需要自定义一个包含经纬度,title,subtitle的数据模型 #import <Foundation/Foundation.h> #import <MapKit/MapKit ...
- APACHE 配置虚拟主机和HTTPS
prepare the running env of os make sure you are using redhat or centen os 7.5 cat /etc/redhat-releas ...
- 笔记-迎难而上之Java基础进阶7
序列化流 把对象以流的方式写入到文件中保存,叫做对象的序列化 把文件中保存的对象,以流的方式读取出来,叫做对象大反序列化 对象的序列化流_ObjectOutputtream继承自OutputStrea ...
- IntelliJ IDEA安装MongoDB的的数据操作插件
说明:只能说效果一般,没有Robo 3T那么好用. 参考: https://intellij-support.jetbrains.com/hc/en-us/community/posts/206635 ...
- python的安全插件
1.PyFuzz (0.1.3) - Simple fuzz testing for u ...
- EasyMvc入门教程-高级控件说明(17)对话框控件
上一节我们说到的信息框比较简单,如果我们想简单实现用户用户交互,比如常用的锁屏界面,应该如何实现呢?首先看效果: 当用户输入"mxd",后,界面显示如下: 以上效果的实现代码为: ...
- circular-array-loop(蛮难的)
https://leetcode.com/problems/circular-array-loop/ 题目蛮难的,有一些坑. 前后两个指针追赶找环的方法,基本可以归结为一种定式.可以多总结. pack ...
- 算法之美--2.2 Array
2016-12-02 00:24:12 利用抽象数据类型实现Array:主要用C++模板实现数组类:体会一个完整的C++类的写法,能顺利写出来的人不多了,特别是对复制构造函数和重载= []运算, ...