HTTP协议总结
来源:互联网 发布:001a航母 知乎 编辑:程序博客网 时间:2024/06/05 06:30
HTTP协议
简介
HTTP协议是超文本传输协议,用于从万维网(www)服务器传输超文本到本地浏览器的传送协议。它是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。
工作原理
HTTP协议工作架构:客户端-服务器。浏览器作为HTTP客户端通过URL向HTTP服务端(Web服务器)发送所有请求。Web服务器:Apache服务器,IIS服务器等。Web服务器根据收到的请求,向客户端发送响应信息。HTTP默认端口为80,但可以改变。
HTTP连接三种特性:
- HTTP是无连接的:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开。采用这种方式可以节省传输时间。
- HTTP是媒体独立的:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
- HTTP是无状态的:无状态是指协议对于事物处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP使用同一资源标识符(URI)来传输数据和建立连接。一旦建立连接后,数据消息就通过类似Internet邮件所使用的格式和多用途Internet邮件扩展(MIME)来传送。
工作过程
一个HTTP操作称为一个事物,其整个过程如下:
- 1)地址解析
- 2)封装HTTP请求数据包:
- 3)封装成TCP包,建立TCP连接(TCP的三次握手)
- 4)客户机发送请求命令
- 5)服务器响应
- 6)服务器关闭TCP连接
HTTP报文
HTTP报文主要包括请求报文和响应报文两种。
HTTP请求报文主要由四部分组成:请求行(request line),请求头部(header),空行,请求数据。
HTTP响应报文主要由四部分组成:状态行,响应头部,空行,响应正文。
请求方法
依据HTTP标准,HTTP请求可以使用多种请求方法。
- HTTP1.0定义了三种请求方法:GET、POST和HEAD方法。
- HTTP1.1新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE和CONNECT方法。
请求头部
请求头部为请求报文添加一些附件信息,由“名/值”对组成,每行一对,名和值之间使用冒号分割。常见请求头如下:
状态码
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接受并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头用以响应浏览器的请求。
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为以下5中类型:
常见HTTP状态码:
- 200——请求成功
- 301——资源(网页等)被永久转移到其他URL
- 302——跳转,跳转地址通过响应头中的Location属性指定
- 400——客户端请求有语法错误,不能被服务器识别
- 403——服务器收到请求,但是拒绝提供服务(认证失败)
- 404——请求的资源(网页等)不存在
- 500——内部服务器错误
- 503——服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常
响应头部
与请求头部类似,为响应报文添加一些附件信息。
- 【总结】HTTP协议基础知识
- HTTP协议大概总结
- HTTP协议学习总结
- HTTP协议总结
- jsp总结--HTTP协议
- http协议-关联总结
- HTTP协议复习总结
- HTTP协议复习总结
- HTTP协议总结
- http协议简单总结
- http协议详细总结
- HTTP协议总结
- http协议学习总结
- Http协议学习总结
- HTTP协议学习总结:
- HTTP协议详细总结
- http协议总结
- http协议总结笔记
- next-permutation
- linux的源
- 非root用户安装python第三方模块
- sizeof ()求指针和数组时的不同
- 求两个数的最大公约数
- HTTP协议总结
- 输出一个字符串遇见‘ \0 ’停止并返回字符串字符的个数
- 宏在使用过程余函数的区别<1>
- 求出两个int(32位)整数m和n的二进制表达中,有多少bit位不同
- 不使用(a + b) / 2这种方式,求两个数的平均值
- C/S and B/S Competition
- 左右翻转二进制数==》繁琐与精简
- 揭露函数所传递参数的本来面目
- 谈面向对象以及程序设计