分析URL结构
我们实际应该要把浏览器与服务器交互的过程,看作是一个长距离文件传输的过程,根据Unix提出的思想,一切皆是文件,服务器做的事情,只是储存这些文件,并在我们提出要求时,查询并找到这些文件,再发送给客户端浏览器实现渲染的过程。而这些交互过程需要一个统一的规范,也就是协议,Internet使用的是HTTP协议。而传递文件前,发出的请求或做出的回应,便是请求/回应行,这是对用户查询行为的一种翻译。用户的行为可能体现在与浏览器表单的交互,也有可能是直接修改URL。
1.URL的组成部分由 协议 + 主机名(:端口(访问本地时可指定))+文件目录 组成
例如:http://www.baidu.com/ 可看做是 http协议 + www.baidu.com主机 +/ 文件目录组成
在文件目录中
使用?代表查询字符,当页面URL出现当前字符时,说明发送或返回到了包含查询信息的页面。?q=xxx (q是query即查询的缩写,但有的网页需要使用tx?query=xxx之流)
使用#代表页面锚点,当页面出现这一部分时,这一部分并没有和主机发生交互,是在客户端浏览器内部实现了定位。
2.HTTP协议
当与服务器发生交互时,客户端会发送一条请求行,开头格式为
方法 + 请求的页面在主机文件目录中的位置 +协议版本
例如:GET /index HTTP/1.1
意思就是查询 服务端文件目录下/index文件 使用HTTP1.1协议版本
方法有get/post 文件目录中不会出现#符号 协议版本可能也会有1.0
3.完成一条请求头
GET /index HTTP/1.1 方法和文件目录和版本
Host:www.example.com 请求的主机位置
User-Agent:chrome 你的代理服务器/也可以随便写
还可以按照自己的意愿再请求头中加一些自定义内容,不过需要遵守格式规范
4.完成一条回应头
HTTP:/1.1 200 OK 分别对应 协议版本 +状态码+状态码原因
Date:Tue Mar 2012 04:33:33 GMT
Server: Apache/2.2.3 服务器版本
Content-type: text/html 返回的内容类型
Content-Length: 1539 返回的内容实体长度
//常见状态码 200 OK 302 Found 404 Not Found 500 Server Error
5.Web Application原理简析
在90年代,服务器中需要返回的页面资源全部被称为static静态资源,不需要
服务端的加载,而是预先写好的,因而不能存在交互功能,比如,网络聊天室,
个人博客等,都无法实现,就像上世纪的地区黄页一样。
而在如今,需要被访问的页面和交互效果都是由动态请求申请获取的。因而
他们都是动态的被加载出来的(build on the fly)。而加载这些动态页面,动态
生成内容的媒介,则被称为网络应用程序(Web Application)。
6.在查询有空格的字段时,系统会为空格加上+号
7.使用get方法可以使用缓存,而post方法并没有,get方法不应该改变服务器
情况,post则被允许可以。