万维网WWW
万维网WWW(World Wide Web),万维网是一个大规模的、联机式的信息储藏所,英文简称为Web。
万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点(也就是所谓的“链接到另一个站点”),
从而主动地按需获取丰富的信息。
超文本是万维网的基础。
万网网以客户服务器方式工作。上面所说的浏览器就是在用户主机上的万维网客户程序。万维网文档所驻留
的主机则运行服务器程序,因此这台主机也称为万维网服务器。客户程序向服务器程序发出请求,服务器程序
向客户程序送回客户所要的万维网文档。在一个客户程序主窗口上显示出的万维网文档称为页面(page)。
从以上所述可以看出,万维网必须解决以下几个问题:
1、怎样标志分布在整个互联网上的万维网文档? 统一资源定位符URL
2、用什么样的协议来实现万维网上的各种链接?超文本传送协议HTTP
3、怎样使不同作者创作的不同风格的万维网文档,都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接? 超文本标记语言HTML
4、怎样使用户能够很方便地找到所需的信息? 搜索工具
统一资源定位符URL
统一资源定位符URL是用来表示从互联网上得到的资源位置和访问这些资源的方法。
URL的一般形式由以下四个部分组成:
<协议>://<主机>:<端口>/<路径>
http://www.tsinghua.edu.cn/index.jsp
这里省略了默认的端口号80。(HTTP的默认端口号是80)。
URL的<协议>就是指使用什么协议来获取该万维网的文档。现在最常用的协议就是http(超文本传送协议HTTP),其次是ftp(文件传送协议FTP)。
超文本传送协议HTTP
HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向事务的应用层协议。
(所谓事务就是指一系列的信息交换,而这一系列的信息交换是一个不可分割的整体,也就是说,要么所有的信息交换都完成,要么异常交换都不进行。)
HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢弃后又怎样被重传。但是,HTTP协议本身是无连接的。
代理服务器(proxy server)是一种网络实体,它又称为万维网高速缓存(Web cache)。代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个
请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去互联网访问该资源。代理服务器可在客户端或服务器端工作,也可在中间系统上工作。
HTTP有两类报文:
1、请求报文——从客户向服务器发送请求报文。
2、响应报文——从服务器到客户的回答。
开始行(在请求报文中的开始行叫做请求行,响应报文中的开始行叫做状态行。)
首部行
实体主体
下面重点讲解一下GET请求和POST的区别:
GET请求的参数放在URL里面,POST请求参数放在请求体里面;
GET请求的URL传参有长度限制,而POST请求没有长度限制;
GET请求的参数只能是ASCII码,所以中文需要URL编码,而POST请求传参没有这个限制;
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息;
GET请求会被浏览器主动cache,而POST不会,除非手动设置;
其实,GET和POST本质上两者没有任何区别。他们都是HTTP协议中的请求方法。底层实现都是基于TCP/IP协议。
好文见:https://www.cnblogs.com/logsharing/p/8448446.html
请求报文的第一行“请求行”:方法,请求资源的URL,HTTP的版本
响应报文的第一行“状态行”:HTTP的版本,状态码,解释状态码的简单短语
状态码都是三位数字的,分为5大类。
1xx表示通知信息,如请求收到了或正在进行处理。
2xx表示成功,如接受或知道了。
3xx表示重定向,如要完成请求还必须采取进一步的动作。
4xx表示客户的差错,如请求中有错误的语法或不能完成。
5xx表示服务器的差错,如服务器失效无法完成请求。