HTTP简介
1.什么是超文本(HyperText)?
包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。这些超文本彼此链接,形成网状(Web),因此被称为网页(Web Page).这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。
2.什么是URL?
URL即统一资源定位符(Uniform Resource Locator),用来唯一的标示万维网中的某一文档。URL由协议、主机和端口(默认为80)以及文件名三部分构成。
3.什么是超文本传输协议HTTP
是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
HTTP的工作原理
请求响应模型
用户点击超链接后,浏览器和Web服务器执行以下动作:
- 浏览器分析超链接中的URL
- 浏览器向DNS请求解析域名的IP地址
- DNS将解析出的IP地址返回浏览器
- 浏览器与服务器建立TCP链接(80端口)
- 浏览器请求文档:GET
- 服务器给出响应,将文档发送给浏览器
- 释放TCP链接
- 浏览器显示解析文档内容
HTTP的链接方式和无状态性
- 非持久性链接
即浏览器没请求一个Web文档,就创建一个新的链接,当文档传输完毕后,链接就立刻被释放
》HTTP1.0,HTTP0.9采用此连接方式
》对于请求的Web页中包含多个其他文档对象(如图像,声音、视频等)的链接的情况,由于请求每个链接对应的文档都要创建新链接,效率低下。
- 持久性连接
即在一个连接中,可以进行多次文档的请求和相应。服务器在发送完响应后,并不立即释放链接,浏览器可以使用该链接继续请求其他文档。连接保持的时间可以由双方进行协商。
- 无状态性
是指同一个客户端(浏览器)第二次访问同一个Web服务器上的页面时,服务器无法知道这个客户端曾经访问过。HTTP的无状态性简化了服务器的设计,使其更容易支持大量并发的HTTP请求。
HTTP报文结构
请求报文
即从客户端向Web服务器发送的请求报文。报文的所有字段都是ASCII码
相应报文
即从Web服务器到客户端的应答。报文的所有字段都是ASCII码
请求报文的方法
方法(Method)是对所请求所进行的操作,也就是一些命令。请求报文中的操作有:
相应报文中的状态码
状态码(Status-Code)是相应报文状态行中包含的一个3位数字,指明特定的请求是否被满足,如果没有满足,原因是什么。状态码分为以下五类:
首部字段或消息头
------请求类型
头(header)
说明
User-Agent 关于浏览器和他平台的信息,如Mozila5.0
User-Agent 关于浏览器和他平台的信息,如Mozila5.0
Accept
客户端处理的页面的类型,如text/html
Accept-Charset
客户端可以接受的字符集,如Unicode-1-1
Accept-Encoding
客户端处理的页面编码方法,如gzip
Accept-Language
客户端处理的自然语言,如en,zh-cn
Host
服务器的DNS名称,从URL中提取出来,必需。
Authorization
客户端的信息凭据列表
Cookie
将以前设置的Cookie送回服务器,可用来作为回话信息。
------响应类型
头(header)
说明
Server
关于服务器的信息,如Microsoft-IIS/6.0
Content-Encoding
内容是如何被编码的
Content-Language
页面所使用的自然语言
Content-Length
以字节计算页面的长度
Content-Type
页面的MIME类型
Last-Modified
页面最后被修改的时间和日期,在页面缓存机制中意义重大
Location
指示客户端将请求发送给别处,即重定向到另一URL
Set-Cookie
服务器希望客户端保存一个Cookie
--------双向
Date
消息被发送的时间和日期
HTTP代理
1.什么是HTTP代理
HTTP代理又称Web缓存或代理服务器(Proxy Server),是一种网络实体,能代表浏览器发出HTTP请求,并将最近的一些请求和响应暂存在本地磁盘中,当请求的Web页面先前暂存过,则直接将暂存的页面发给客户端,无需再次访问Internet。
2.使用http代理的web访问过程