HTTP超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。它是一个客户端和服务器端请求和应答的标准(TCP)。 客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求,服务器端响应报文的过程。本文简要描述http以及web网站的一些基础知识供大家参考。
一、什么是http
http,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。
客户端(user agent)通过使用Web浏览器、网络爬虫等工具,发起一个到服务器上指定端口(默认端口为80)的HTTP请求。
应答的服务器上存储着(一些)资源,比如HTML文件和图像,(我们称)这个应答服务器为源服务器(origin server)。
通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。
HTTP服务器则在那个端口监听客户端发送过来的请求。
一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息等。
消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
二、http协议版本
0.9:已过时,只接受 GET 一种请求。
1.0:第一个在通讯中指定版本号的HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。
1.1:当前版本。持久连接被默认采用,并能很好地配合代理服务器工作。
支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。
三、http相关概念
html:
超文本标记语言,“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
url:
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
常用的表示方法:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志
url最常用协议即是http,其他协议如,https,ftp,mailto,ldap,file,news,gopher,telnet等
uri:
统一资源标识符,是一个用于标识某一互联网资源名称的字符串。常见的格式为,协议名称://域名.根域名/目录/文件名.后缀
该标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。
uri示例,
这个示例中是一个使用了http协议的资源,位于服务器上
通过uri中的字符串/photo访问服务器上的photo文件夹下的abc.gif文件
urn:
Uniform Resource Name,统一资源名称。url,urn是uri的子集。
四、web资源
存放在Internet网上供外界访问的文件或程序,又根据它们呈现的效果及原理不同,将它们划分为静态资源和动态资源。
静态资源:
浏览器能够直接打开的,如一个js文件,浏览器可以直接打开没有出现问题,那么就说明它是一个静态资源。
如,html文件、css文件、js文件等它们都是静态资源。
动态资源:
浏览器不能够直接打开,但是经过翻译之后浏览器能够打开的资源称之动态资源。
比如说jsp文件、servlet、php、ASP等这些都是动态资源。
差别:
浏览器访问静态资源,服务器会直接响应给浏览器;
若浏览器访问的是动态资源,服务器先将动态资源翻译或转换成静态资源,然后再响应给浏览器
web资源类型:
html text/html类型
txt text/plain类型
jpeg image/jpeg类型
gif image/gif类型
mov,flv 视频资源类型1
五、http报文
请求报文语法格式
起始行 :<方法> <URL> <协议版本>
请求首部 :headers
主体 :请求的内容(包含客户端请求服务器的数据)
方法:客户端希望服务器端对资源执行的动作
GET:从服务器获取一份web资源,需要服务器发送
HEAD:只从服务器获取文档的首部
POST:向服务器发送需要处理的数据(一般是表单提交)
PUT:与GET相反,向服务器发送资源;服务器通常需要存储此资源(位置:通常为文件系统)
DELETE:删除URL指向的资源
OPTIONS:探测服务器端对请求的URL所支持使用的请求方法
TRACE:跟一次请求中间所经过的代理服务器、防火墙或网关
通用首部:在报文中添加的附加信息,用于描述主体
Connection: 定义C/S之间关于请求、响应的有关选项
Connection: keep-alive
Cache-Control: 缓存控制
Via: 显示了报文经过的中间节点