HTTP是一个基于TCP/IP通信协议来传递数据(超文本传输协议)

好久木来更新文章了~我又回归了,此刻鼓掌。。。。。。



今天就来分享下http协议的小知识,在接口测试中我们最常接触的HTTP协议,那么今天就来畅谈下HTTP的小世界~O(∩_∩)O~

一、工作原理



浏览器(ps:一切基于http协议的发起的http请求的工具)向web服务器发出请求,Web服务器根据接收到的请求后,向客户端发送响应信息。

web服务器:

默认端口号:80

  • Apache服务器
  • Nginx服务器
  • IIS服务器

HTTP三点注意事项:

  • HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
  • HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

二、HTTP报文结构

(一)请求报文

  • 请求行

    请求方法 、 请求URL 、 协议版本

    常见的请求方法:

    HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。

    HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
  • 请求头部

    常见的头部key/value:

    Host: 请求的主机名

    User-Agent:生成请求的浏览器类型

    Accept:客户端可识别的响应内容类型列表

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

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

    Accept-Charset: 可接受的字符集

    Cookie: 存储在客户端的扩展字段

    connection:连接方式(close或keeplive)

    对于请求端来讲:

    close是告诉服务端,断开连接,不用等待后续的求请了。keeplive则是告诉服务端,在完成本次请求的响应后,保持连接,等待本次连接后的后续请求。
  • 空行

    通过一个空行,告诉服务器请求头部到此为止
  • 请求数据

    若方法字段是GET,则此项为空,没有数据

    若方法字段是POST,则通常来说此处放置的就是要提交的数据

    (fiddler中可以查看textview)

(二)响应报文

  • 状态行

    HTTP协议版本、状态码、状态码描述三部分构成

    常见的HTTP状态码:

    200 - 请求成功

    301 - 资源(网页等)被永久转移到其它URL

    404 - 请求的资源(网页等)不存在

    500 - 内部服务器错误



    常见状态码说明:

    200 OK: 表示客户端请求成功

    400 Bad Request: 表示客户端请求有语法错误,不能被服务器端解析

    401 Unauthonzed: 表示请求未经授权,该状态码必须与WWW-Authenticate报文头一起使用

    404 Not Found:请求的资源不存在,例如输入了错误的url

    500 Internal Server Error: 表示服务器发生了不可预期的错误,导致无法完成客户端的请求

    503 Service Unavailable:表示服务器当前不能处理客户端的请求,在一段时间后服务器可能恢复正常
  • 响应头部

    常见的响应头字段:

    Location:     这个头配合302状态码使用,用于告诉客户找谁。

    Server:      服务器通过这个头告诉浏览器服务器的类型。

    Content-Encoding: 服务器通过这个头告诉浏览器数据的压缩格式。

    Content-Length:  服务器通过这个头告诉浏览器回送数据的长度

    Content-Type:   服务器通过这个头告诉浏览器回送数据的类型

    Last-Modified:   告诉浏览器当前资源的最后缓存时间

    Refresh:     告诉浏览器隔多久刷新一次

    Content-Disposition:告诉浏览器以下载方式打开数据

    Transfer-Encoding: 告诉浏览器数据的传送格式

    ETag:       缓存相关的头
  • 空行

    通过一个空行,告诉请求端响应内容到此为止
  • 响应内容

    服务端返回给浏览器的文本信息

三、案例分析

此处以伟大的百度为案例吧~~~

此处BZ使用的是chrome的检查工具,Firefox的检查工具和第三方抓包工具都是可以的哦~

关于http协议今天就小小介绍到这里咯,网络上有许多的学习资料观看↖(^ω^)↗~

资料链接:

Http协议---Hyper Text Transfer Protocol的更多相关文章

  1. Hyper Text Transfer Protocol(超文本传输协议)

    HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...

  2. http(Hyper Text Transfer Protocol)

    一.定义    http(Hyper Text Transfer Protocol):超文本传输协议二.作用    数据传输三.概念    HTTP消息:        1.客户端发向服务器的请求消息 ...

  3. TFTP(Trivial File Transfer Protocol,简单文件传输协议)

    TFTP(Trivial File Transfer Protocol,简单文件传输协议),是 TCP/IP 协议族中用来在客户机和服务器之间进行简单文件传输的协议,开销很小.这时候有人可能会纳闷,既 ...

  4. Simple Mail Transfer Protocol --- SMTP协议

    https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol   Simple Mail Transfer Protocol

  5. HTML:Hyper Text Markup Language 超文本标记语言

    1.HTML是什么? *Hyper Text Markup Language 超文本标记语言 *Hyper Text:超链接.把不同空间的资源,整合在一起,形成逻辑上的网状结构. *Markup La ...

  6. Simple Mail Transfer Protocol

    https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol https://zh.wikipedia.org/wiki/简单邮件传输协议 & ...

  7. FTP(File Transfer Protocol)是什么?

    文件传输协议 FTP(File Transfer Protocol),是文件传输协议的简称.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).用户可以通过 ...

  8. arp:地址解析协议(Address Resolution Protocol)(来自维基百科)

    地址解析协议(Address Resolution Protocol),其基本功能为通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在I ...

  9. HTML (Hyper Text Markup Language) 常用标签

    HTML是什么?  英文全称:Hyper Text Markup Language  中文全称:超文本标记语言  网页主要由 机构  表现 行为  组成 什么是标签?    < > 里的叫 ...

随机推荐

  1. HTML 5入门知识(五)

    本地存储Web Storage 使用HTML 5的Web Storage功能,可以在客户端存储更多的数据,而且可以实现数据在多个页面中共享甚至是同步. cookie存储数据的不足 cookie可用于在 ...

  2. [LeetCode]Spiral Matrix 54

    54.Spiral Matrix Given a matrix of m x n elements (m rows, n columns), return all elements of the ma ...

  3. ASP查询数据RS转换成COMMAND

    RS版本: IF(troubleCatalog="1" or troubleCatalog="2" or troubleCatalog="3" ...

  4. wemall app商城源码Android短信监听接收器

    wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...

  5. koahub软件市场微信编辑器源码,可下载

    管理过公众平台的小伙伴都知道,公众平台最重要的是图文的编辑和发布,由于微信公众平台的图文编辑页面比较简陋,功能和样式的比较少,所以一般都是使用专业的微信图文编辑器,koahub软件市场里有一款专门编辑 ...

  6. (1)写给Web初学者的教案-----学习Web的知识架构

    1:学习Web的知识架构 前文中我们简单的介绍了一些关于Web的基本知识,这里任老师再次强调一下凡是用浏览器打开的网站我们就称之为Web应用程序(B/S结构).除此之外其它需要下载安装的软件或是手机  ...

  7. 用C写一个web服务器(一) 基础功能

    .container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...

  8. Robot Framework 使用笔记

    条件表达式: Run Keyword If 表达式 执行动作   ... ELSE IF 表达式 执行动作 ... ELSE 执行动作   基础格式见上表,下面是我遇到的坑: 表达式:判断字符串变量是 ...

  9. C++ Primer 5 CH1 开始

    1.1 编写一个简单的C++程序 在大多数系统中,main 的返回值被用来指示状态.返回值 0 表示成功,非 0 的返回值的含义由系统定义,通常用来指出错误类型. 访问 main 的返回值的方法依赖于 ...

  10. jquery实现名单滚动

    转:http://www.qdfuns.com/notes/25341/917d9cb031f835a086dd445b77b6e04e.html 介绍:记录滚动特效.就是那一排文字不停地滚啊滚啊滚得 ...