http学习笔记

HTTP  

  HTTP(超文本传输协议)是一个应用层的面向对象的协议,用于从WWW服务器传输超文本到本地浏览器。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。目前使用的主要版本是HTTP/1.0以及HTTP/1.1。

 

基本概念

1.HTTP基于TCP/IP协议,发送请求需要建立TCP连接。

2.HTTP是基于请求/响应的模式,每次交互,都由客户端发送一个请求到服务器端,服务器端收到请求后会返回一个响应给客户端,所以一次请求+响应的过程才是一个完整的HTTP传输过程。而且服务器端不能主动向客户端发送消息,必须等待客户端发起请求后才能作出回应。

3.HTTP的请求部分主要分为三个部分:请求行,请求头部,请求主体。具体例子如下:

POST /sample.jsp HTTP/1.1
Accept:image/gif.image/jpeg,*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate
 
username=jinqiao&password=1234

第一行即为请求行,主要由请求方法(包括GET,POST,DELETE,PUT,HEAD等),资源所在的URL(URI的一种),协议版本号组成。

第二行到第七行为请求头部,这部分的信息主要由浏览器负责填入,也可以手动进行设置,主要用来告诉服务器一些浏览器端的情况。比如Accept表示接受的数据类型,Connection表示请求是建立的长连接还是短连接。User-Agent表示用户代理,会发送浏览器以及操作系统的基本信息等。(浏览器的缓存设置就是在请求头部中进行设置,通过cache-control可以和服务器沟通资源的缓存情况)。

最后一行为请求主体,通常为发送给服务器的数据,通常是在POST请求的时候使用,GET请求会将发送的数据附在URL的末尾作为参数。

4.HTTP的响应部分主要分为三个部分:响应行,消息报头,响应正文。具体例子如下:

HTTP/1.1 200 OK
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:23:42 GMT
Content-Length:112

username=jinqiao&password=1234

第一行为响应行,主要包括版本协议号,响应状态码,响应状态消息。

第二到第四行为消息报头,主要由服务器填入,也可以手动设置,用来反馈服务器的情况(跨域中的CROS方法就是通过在消息头部中设置accept-controll-allow-origin属性)

最后一行为响应正文,用来返回客户端请求的数据。

 

HTTP特点

1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

 

posted @ 2017-03-27 19:19  zhangjunfeng  阅读(124)  评论(0编辑  收藏  举报