美文网首页
HTTP协议

HTTP协议

作者: 张二宝 | 来源:发表于2019-08-14 15:46 被阅读0次

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议),用于web服务器和客户端浏览器之间的超文本传输。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

HTTP特点:

     无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

     媒体独立的:这意味着,只要客户端和服务器知道处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

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

http工作过程(图片源于网络)


HTTP请求:

    HTTP请求包含三部分,分别是

    请求行:包含请求方法Method、服务器资源路径URL、HTTP版本信息Version;

    请求头:包括一些访问的域名、用户代理、Cookie等信息;

    请求体:HTTP请求的一些数据。

    HTTP响应包含三部分,分别是:

    状态行:包含HTTP版本Version、状态码、状态码原因短语(状态码含义:http网络请求 接口测试返回statusCode(状态码)含义);

    响应头:包括搭建服务器的软件、发送响应的时间Date、回应数据的格式Content-Type等信息;

    响应正文:响应的具体数据。

常用的HTTP请求方法:

    GET: 请求指定的页面信息,并返回实体主体。

    HEAD: 用于获取报头,与GET方法类似,只是不返回报文主体,一般用于验证URL是否有效。

    POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

    PUT: 从客户端向服务器传送的数据取代指定的文档的内容。

    DELETE:请求服务器删除对应URL位置的文件。

    OPTIONS:允许客户端查看服务器的性能。

GET方法与POST方法的区别:

        1、get重点在从服务器上获取资源,post重点在向服务器发送数据;

        2、get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/login?name=admin&password=123456,这个过程用户是可见的;post传输数据是,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的; 也因此post比get安全性更高;

        3、get传输的数据量小,因为受URL长度限制,但效率较高;post可以传输大量数据;

        4、get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。post支持标准字符集,可以正确传递中文字符。

常见的请求头

● User-Agent:产生请求的浏览器类型;

● Accept:客户端可识别的响应内容类型列表;星号 “ * ” 用于按范围将类型分组,用 “ */* ” 指示可接受全部类型,用“ type/* ”指示可接受 type 类型的所有子类型;

● Accept-Language:客户端可接受的自然语言;

● Accept-Encoding:客户端可接受的编码压缩格式;

● Accept-Charset:可接受的应答的字符集;

● Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;

● connection:连接方式(close 或 keepalive);

● Cookie:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie;

请求头更多详情可查看——HTTP请求头

Content-Type常见的几种值

常见的媒体格式类型:

    text/html : HTML格式

    text/plain :纯文本格式      

    text/xml :  XML格式

    image/gif :gif图片格式    

    image/jpeg :jpg图片格式 

    image/png:png图片格式

    multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

    application/xhtml+xml :XHTML格式

    application/xml     : XML数据格式

    application/atom+xml  :Atom XML聚合格式    

    application/json    : JSON数据格式

    application/pdf       :pdf格式  

    application/msword  : Word文档格式

    application/octet-stream : 二进制流数据(如常见的文件下载)

    application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

相关文章

网友评论

      本文标题:HTTP协议

      本文链接:https://www.haomeiwen.com/subject/fudgjctx.html