HTTP学习笔记(一)之初探

1

http概念

HTTP协议

(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

2

http特征

http是应用层协议,由请求和响应构成,支持客户/服务器模式。

http是一个无状态的协议(每次发出的请求都是独立的,和上次的请求是没有关系的,所以如果需要通过http进行模拟登陆,就需要传递登录cookie)。

无连接协议(每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接)。

3

http服务器

Web服务器使用的基本都是http协议,所以web服务器也被称为是http服务器。

http服务器 与 app 服务器 的区别:

Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。

应用程序服务器(简称应用服务器),我们先看一下微软对它的定义:”我们把应用程序服务器定义为“作为服务器执行共享业务应用程序的底层的系统软件”。

通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑 (business logic)。

Apache是纯粹的web服务器,而Tomcat和IIS因为具有了解释执行服务器端代码的能力,可以称作为轻量级应用服务器或带有服务器功能的Web服务器。

详细可参考:

http://blog.csdn.net/gideal_wang/article/details/4442525

一个http请求过程:

用户在浏览器中输入一个URL,浏览器首先回去查host文件,如果此域名有对应的ip,如果没有就会根据网络连接里面的DNS地址去查选此URL对于的IP地址,再根据这个IP地址和默认80端口与远程服务器建立socket连接,然后浏览器根据这个URL组装成一个get类型的HTTP请求头,通过outputStream.write 发送到目标服务器,服务器等待inputStream.read返回数据,最后断开连接。

一张HTTP请求过程图示:

http 请求头 和 相应头的组成:

http 与 TCP 关系:

参考之前写的一片文章《Websocket 探究》

http 与socket关系:

首先说一下什么是socket,Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,而不是协议。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。Socket 可以支持不同的传输层协议(TCP 或UDP )。

http连接:是基于TCP协议之上的协议,是短连接;

socket连接:socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉,但会由于网络因素断开,所以经常使用轮询心跳来保持连接;

HTTP 是基于Socket 通信的子协议, Socket 收发信息自由, 协议都可由使用者定义。 HTTP 在Socket 基础上做了协议规范, 通信只能按照特定的格式去做, 用户可在HTTP 上做自己的子协议, 如网页浏览,webservice 等.

-END-

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180702G1G1M800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券