HTTP协议(上):简介

来源:互联网 发布:游戏设计软件 编辑:程序博客网 时间:2024/05/16 11:45

1. Web服务器

WWW是 World Wide Web (环球信息网)的缩写,也可以简称为 Web,中文名字为“万维网”。

Web服务器(也称WWW服务器)一般指网站服务器,主要功能是提供网上信息浏览服务。

目前最主流的三个Web服务器是Apache、Nginx、IIS。一些使用C/C++开发的开源的http服务器列表在这里:http://www.oschina.net/project/tag/106?lang=21&os=0&sort=time

Web服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流。

2. HTTP协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,它详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示: 
这里写图片描述

HTTP协议的特点: 
- 支持C/S架构 
- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径,常用方法:GET、POST 
- 无连接:限制每次连接只处理一个请求 
- 无状态:即如果后续处理需要前面的信息,它必须重传

无状态性: 
HTTP 协议是无状态的(stateless)。也就是说,同一个客户端第二次访问同一个服务器上的页面时,服务器无法知道这个客户端曾经访问过,服务器也无法分辨不同的客户端。

无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP 的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP 请求。

持久连接 
HTTP1.0 使用的是非持久连接,主要缺点是客户端必须为每一个待请求的对象建立并维护一个新的连接,即每请求一个文档就要有两倍RTT(往返时延)的开销。因为同一个页面可能存在多个对象,所以非持久连接可能使一个页面的下载变得十分缓慢,而且这种短连接增加了网络传输的负担。

HTTP1.1 使用持久连接Keep-Alive,所谓持久连接,就是服务器在发送响应后仍然在一段时间(timeout时间到了,Keep-Alive最终也会断开)内保持这条连接,允许在同一个连接中存在多次数据请求和响应,即在持久连接情况下,服务器在发送完响应后并不关闭TCP 连接,而客户端可以通过这个连接继续请求其他对象。

3. HTTPS协议

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

在实际的编码中,HTTPS并不需要增加多少额外的工作(操作基本和HTTP一样),就可以实现HTTPS通信。

HTTPS和HTTP的区别主要为以下四点:

  1. https协议需要到ca申请证书,一般免费证书很少,需要交费。
  2. http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

4. 地址(URL)

URL全称为Unique Resource Location,用来表示网络资源,可以理解为网络文件路径。

URL的格式如下:

    http://host[":"port][abs_path]    http://192.168.31.1/html/index
  • 1
  • 2
  • 1
  • 2

URL的长度有限制,不同的服务器的限制值不太相同,但是不能无限长。

原创粉丝点击