HTTP协议相关(更新中)

协议学习 (HTTP)
 
  • HTTP协议称为超文本传输协议,用于万维网(WWW:WORLD  WIDE  WEB)服务器传输超文本到本地浏览器的传输协议。 基于TCP/IP通信协议进行传输数据(HTML文件,图片文件,查询结果)。
 
    作工原理     
        工作于客户端---服务器(C/S)架构上。浏览器作为http客户通过url(路径)向服务器即web服务器发送请求。
 
 
  •     web服务器指一般网站服务器,驻留与Internet上某种类型的计算机程序,可以处理浏览器等web客户端的请求并返回相应响应,也可以放置网站文件,供其浏览;可放置数据文件,供其下载。目前主流web服务器为: Apache、nginx、iis。
  •     web服务器根据收到的请求向客户端发送响应信息。
  •     http默认端口号为80,可以修改成8080或者其他端口。
      注意事项
  1.     http是无连接的:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户请求,并收到客户的应答后,即端开连接。采用这种方式可以节省传输空间
  2.        http是体媒独立的:意味只要客户端和服务器知道如何处理的数据内容任何类型的数据都可以通过http发送。客户端以及服务器制定使用合适的MIME-type内容类型。
  3.        http是无状态的:无状态是指对于事务处理没有记忆能力。缺少状态意味如果后续处理需要前面的信息,则必须重复传输,这样可能导致每次连接传输的数据量增大。
 
        HTTP协议通信流程:
                          
        Web Browser是IE内置的浏览器控件,无需下载。
        HTTP Protocol指HTTP协议
        HTTP Server指HTTP服务器
        CGI Program指通用网关接口程序
        Database指数据库
                
CGI(Common Gateway Interface) 是 HTTP 服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
绝大多数的 CGI 程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI 程序使网页具有交互功能。
        Http消息结构
            
http通过一个可靠的链接进行交换信息,是一个无状态的请求/响应协议。
            一个http客户端是一个应用程序(web或其他任何客户端),通过链接到服务器达到向服务器发送一个或多个http的请求的目的。
            一个http服务器也是一个应用程序(web服务例Apache、IIS),接受客户端请求并向客户端发送http响应数据。
            使用统一资源标识符(Uniform Resource Identifiers,URI)传输数据和建立连接。
            建立连接后,数据消息可以通过类似Internet邮件锁使用的格式[RFC5322]和多用途Internet邮件扩展(MIME)[RFC2045]来传送。
 
客户端请求消息
    客户端发送一个请求到服务器的请求消息格式:请求行(request line)、请求头(header)、空行和请求数据四个部分组成。
 
       
 

服务器响应消息
HTTP响应也是由四个部分组成的,分别是 :状态行、消息报头、空行和响应正文。
    Such as:
            使用get传输数据实例:
客户端请求:
 
GET /hello.tex HTTP/1.1
User-Agent: curl/7.16.3 libcur1/7.16.3 OpenSSL/0.9.71 zlib/ 1.2.3
Host:www.example.com
Accept-Language:en,mi
服务器响应:
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server:Apache
Last-Modified: Web, 22 Jul 2009 19:15:56 GMT
Etag:"34aa387-d-1568eb00"
Accept-Ranges:bytes
Content-Length: 51
Vary:Accept-Encoding
Content-Type: text/plain

 

输出结果:

  

Hello World! My payload includes a trailing CRLF.

 

 
 
 
 

MIME'type:
   
 常见的MIME类型 超文本标记语言文本 .html,.html text/html     
    普通文本 .txt text/plain
    RTF文本 .rtf application/rtf
    GIF图形 .gif image/gif
    JPEG图形 .ipeg,.jpg image/jpeg
    au声音文件 .au audio/basic
    MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
    RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
    MPEG文件 .mpg,.mpeg video/mpeg
    AVI文件 .avi video/x-msvideo
    GZIP文件 .gz application/x-gzip
    TAR文件 .tar application/x-tar

 


 
HTTP协议的8种请求介绍
HTTP 协议中共定义了八种方法或者叫“动作”来表明对 Request-URI 指定的资源的不同操作方式,具体介绍如下:
OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。
HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
GET:向特定的资源发出请求。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。
PUT:向指定资源位置上传其最新内容。
DELETE:请求服务器删除 Request-URI 所标识的资源。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
虽然 HTTP 的请求方式有 8 种,但是我们在实际应用中常用的也就是 get 和 post,其他请求方式也都可以通过这两种方式间接的来实现。
--------------------------------------------------------------------HTTP1.0定义三种请求方式:GET、POST和HEAD方法。
HTTP1.1新增六中请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE和CONNECT方法。

  

 
    端口号:
        
类似于门牌作用,客户端可以通过IP地址找到对应的服务器端,服务器端有多端口,每个应用程序对应一个端口号。
一个ip地址的端口通过16bit进行编号,最多可以有65536个端口。端口号只有整数,范围为0-65535。
使用规则:TCP与UDP(无连接的传输协议)结构中端口地址都是16bit(比特);端口号小于256的定义为常用端口,
服务器一般都是通过常用端口号进行识别。任何TCP/IP实现所提供的服务都在1-1023之间的端口号,由ICANN
(互联网名称与数字地址分配机构)进行管理;客户端需要保证端口号在本机是唯一的,端口号因存在时间短暂又称之为临时端口号;
大多数TCP/IP实现给临时端口号分配1024-5000之间的端口号。大于5000的端口号是为其他的服务器预留的。

  

 
 
 
posted @ 2021-03-23 18:20  骑萝卜钓龙虾  阅读(78)  评论(0)    收藏  举报