美文网首页
Http协议详解

Http协议详解

作者: 赵碧菡 | 来源:发表于2017-06-18 20:13 被阅读0次

在解释Http协议是什么之前,先解释一下什么是协议、超文本、web服务器。

  • 协议
    协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。
  • 超文本协议
    超文本协议是用超链结的方法,将各种不同空间的文字信息组织在一起的网状文本。其中的文字包含有可以链结到其他位置或者文档的连结,允许从当前阅读位置直接切换到超文本连结所指向的位置。
  • web服务器
    web服务器一般是指网站服务器,是指驻留于因特网上某种计算机程序。可以向发出请求的浏览器等web客户端提供文档。也可以防止文件让全世界浏览,也可以放置数据文件让全世界下载。
1、什么是 Http 协议

Http协议,即超文本传输协议,是用于从web服务器传输文本到本地浏览器的传输协议。可以使浏览器更加高效,使网络传输减少。

2、Http 的特性
  • 支持客户端/服务器模式
  • 简单快速:客户端向服务器发送数据时,只需要传送请求方法和路径,常用的请求方法有GET、POST、HEAD。
  • 灵活: 可以传输任何类型的数据对象,传输的类型又Content-Type加以标记。
  • 无连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • 无状态:无状态是指协议对事务处理没有记忆功能,缺少状态意味着如果后续处理需要前面的信息,则需要重传,这样会导致每次连接传输的数据量增大。Cookie和Session就可以用于保持 Http 无状态连接。Cookie最典型的应用是判定注册用户是否已经登录网站,保持用户的登录信息。在下一次访问该网站时就不用输入用户名密码了。
3、工作原理

①、首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。
②、建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
③、服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
④、客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

图片.png

浏览器打开一个网页需要发送多次请求
①、 当你在浏览器输入URL的时候,浏览器发送一个请求去获取 URL中 的html. 服务器把响应发送回给浏览器.
②、浏览器分析响应中的 HTML,发现其中引用了很多其他文件,比如图片,CSS文件,JS文件。
③、浏览器会自动再次发送请求去获取图片,CSS文件,或者JS文件。
④、 等所有的文件都下载成功后。 网页就被显示出来了

4、HTTP请求报文

Http请求有四部分组成:请求行、消息报头、空行、请求正文(body)。

http请求.png
  • 请求行
    请求行由请求方法、资源统一标示符URL、协议版本、CRLF(回车换行)组成。常用的请求的方法有GET、POST、HEAD。
图片.png

这里介绍一下URL组成
URL用于描述一个网络上的资源,其组成是:

Protocol://host[:port#]/path/.../[?query-string][#anchor]

Protocol : 指定低层使用的协议(例如:http, https, ftp)。
host : Http服务器的IP地址或者域名。
port :端口号, Http端口号默认是80一般默认省略不写,如果使用其他端口号必须要指明。http://xxxxxx:8080/
path : 访问资源的路径。
query-string : 发送给Http服务器的数据。
anchor : 锚

  • 消息报头
    消息报头通知服务器有关于客户端请求的信息。


    消息报头.png
  • 空行
    请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。

  • 请求正文(body)
    请求正文中可以包含用户提交的数据,当使用的是"GET" 方法的时候, body是为空的。

请求正文.png
5、Http 响应报文

Http 响应报文由三部分组成:状态行、消息报头、响应正文。

  • 状态行
状态行.png

常见状态代码及状态描述的说明如下:

(1)、1xx:通知——仅在与HTTP服务于器沟通时使用


1xx.png

(2)、2xx:成功——成功收到、理解和接受动作

2xx.png

(3)、3xx:重定向——为完成请求,必须进一步采取措施

3xx.png

(4)、4xx:客户端错误——请求包含错误的语法或不能完成

4xx.png

(5)、5xx:服务器端错误——服务器不能完成明显合理的请求

5xx.png
  • 消息报头
消息报头.png
  • 响应正文
响应正文.png

相关文章

  • iOS学习笔记之HTTP协议,iOS缓存和CoreData

    一.HTTP协议: 参考资料: HTTP协议详解:HTTP协议详解 超文本传送协议(百度百科):超文本传送协议百度...

  • Http

    HTTP 协议 HTTP 协议详解 超文本传输协议(HTTP,HyperText Transfer Protoco...

  • Java----使用nioSocket获取和返回http报文

    参考博客:HTTP协议(一)之HTTP协议详解 HTTP协议 HTTP(HyperText Transfer Pr...

  • HTTP协议详解

    参考:HTTP协议详解

  • HTTP协议详解

    HTTP协议详解 一.HTTP简介 1.HTTP协议,即超文本传输协议(Hypertex...

  • HTTP

    HTTP 来源:博客 HTTP详解 HTTP协议详解 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、...

  • HTTP 协议详解

    HTTP 协议详解 HTTP(HyperText Transfer Protocol)超文本传输协议。其最初的设计...

  • Golang面试之HTTP

    引用 HTTP协议详解 HTTP协议原理详解及应用 LwIP应用开发笔记之八:LwIP无操作系统HTTP客户端 U...

  • HTTP协议详解

    HTTP协议详解 INDEX 原文地址 什么是HTTP协议 URL HTTP消息结构 HTTP方法 状态码 Hea...

  • HTTP协议之状态码详解

    HTTP协议之状态码详解 Hypertext Transfer Protocol -- HTTP/1.1

网友评论

      本文标题:Http协议详解

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