HTTP协议简介
1、什么是超文本?
包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。这些超文本文件彼此链接,形成网状(Web),因此又被称为网页(Web Page)。这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。
2、什么是URL?
URL即统一资源定位符(Uniform Resource Locator),用来唯一地标识万维网中的某一个文档。URL由协议、主机和端口(默认为80)以及文件名三部分构成。如:
协议 :// | 主机:端口(80)/ | 文件名及其路径 |
---|---|---|
http:// | www.baidu.com:80 | news/index.html |
3、什么是超文本传输协议HTTP?
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP的特点
HTTP工作原理
第一步:浏览器分析超链接中的URL
第二步:DNS请求
PC向DNS服务器222.246.129.80发出DNS QUERY请求,请求www.qq.com的A记录
第三步:DNS回复
DNS服务器222.246.129.80回复DNS response,解析出www.qq.com域名对应的三条A记录59.37.96.63、14.17.42.40/14.17.32.211(DNS的A记录:将主机名解析成对应的IP)
第四步:PC向解析出的www.qq.com服务器地址发起tcp三次握手
第五步:PC向www.qq.com 服务器发出GET请求,请求主页
第六步:www.qq.com 服务器回应HTTP/1.1 200 OK,返回主页数据包
第七步:完成数据交互过程,四次挥手断开连接
HTTP的请求方法
方法是对所请求对象所进行的操作,也就是一些命令,请求报文中的操作有:
HTTP状态码
状态码(Status-Code)是响应报文状态行中包含的一个3位数字,指明特定的请求是否被满足,原因是什么。状态码分为以下五类:
HTTP 头部字段
关于 Cookie
保存SessionID的方式可以采用Cookie,这样在交互过程中浏览器可以自动的按照规则把这个SessionID发回给服务器。Cookie的命名方式类似于SessionID。有时Cookie被人为的禁止,所以出现了其他机制以便在Cookie被禁止时仍然能够把SessionID传递回服务器。这种技术叫做URL重写,就是把SessionID直接附加在URL路径的后面,附加方式也有两种:
一种是作为URL路径的附加信息:
表现形式为http://www.wantsoft.com/index.asp;jsessionid= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
另一种是作为查询字符串附加在URL后面:
表现形式为http://www.wantsoft.com/index?js … 99zWpBng!-145788764
关于 Session
Session
Session是可以存储针对于某一个用户的浏览器以及通过其当前窗口打开的任何窗口具有针对性的用户信息存储机制。 通常大家认为,只要关闭浏览器,session就消失,其实这是错误的理解。对session来说也是一样的,除非程序通知服务器删除一个session,否则服务器会一直保留。由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。
(1)第一次访问某个web站点资源时,客户端提交没有带SessionID的请求(请求报文头没有Cookie头域信息)。 而web服务器会检查是否有SessionID过来,没有则创建SessionID,并根据web程序自身定义在请求哪个资源时添加属于当前会话的信息(也可为空),这个信息列表以SessionID作为标识。然后将SessionID返回给客户端(通过响应报文头的Set-Cookie头域)。
(2 )客户端再次访问同个web站点时,提交带有SessionID的请求(通过Cookie头域存储SessionID)。由服务端判断session是否失效,如果未失效,可查询属于当前会话的信息列表。如果失效,则创建新的session(产生新的SessionID),而原先的session(包含session带的信息列表)则丢失,无法访问。