http协议知识整理(转)

简介: HTTP 协议 作为web开发人员,了解一些http协议的知识很有必要。本文简单介绍了HTTP协议的知识,若有错误的地方,望大家指正。 1.HTTP协议是什么? http协议是一个应用层的协议。

HTTP 协议

作为web开发人员,了解一些http协议的知识很有必要。本文简单介绍了HTTP协议的知识,若有错误的地方,望大家指正。

1.HTTP协议是什么?

  • http协议是一个应用层的协议。规定了浏览器和服务器之间的通信规范。通常用TCP连接方式。

2.HTTP 1.0、1.1 连接的方式。

  • 在HTTP 1.0 中,浏览器和服务器使用的是短连接,响应完,立即断开。
  • 请求的过程:3次握手,请求,响应,断开连接。
  • http不保存连接,好处:服务器可以处理更多的连接,但是每次建立连接会降低处理速度。
  • 现在主流的版本是HTTP 1.1 ,在HTTP 1.1 中我们使用长连接,一个请求结束后,不断开,继续请求。

3.HTTP协议的URL

URL的格式:

http://host[":"port][abs_path]

  • host: 代表主机域名或IP地址
  • port: 端口号,缺省端口80
  • abs_path : 请求资源的URL,如果没有,填 "/",通常浏览器会帮我们自动完成。 EG: 1、输入:www.cnblogs.com 浏览器自动转换成:http://www.cnblogs.com/

4. HTTP请求

4.1 请求报文格式:

  • HTTP的请求由3部分组成:请求行、请求头、请求体。
  • SP代表空格、CRLF代表换行
  • 浏览器必须以这个格式发送请求,服务器才能正常解析和响应。

4.2 请求报文示例

4.3 请求方法

  • GET 请求获取Request-URI所标识的资源
  • POST 在Request-URI所标识的资源后附加新的数据,常用于提交表单。
  • HEAD 请求获取由Request-URI所标识的资源的响应消息报头
  • PUT 请求服务器存储一个资源,并用Request-URI作为其标识
  • DELETE 请求服务器删除Request-URI所标识的资源
  • TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
  • CONNECT 保留将来使用
  • OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

get和post是最常用的方法,简单来说,前者用于获取数据,后者用于提交数据。

5. HTTP响应

5.1 响应报文格式:

  • HTTP的响应也是由3个部分组成:响应行、响应头,响应体
  • 响应行:status code 表示响应的状态码,description是描述信息。
  • 同样 SP代表空格、CRLF代表换行,
  • 响应必须以这种规范格式发送给浏览器,浏览器才能正常解析并显示。

5.2 响应报文示例

5.3响应码

200段是成功;300段需要对请求做进一步的处理;400段表示客户端请求错误;500段是服务器的错误 常见响应码:

  • "200" : OK
  • "302" : Found 重定向.
  • "400" : Bad Request 错误请求,发出错误的不符合Http协议的请求
  • "403" : Forbidden 禁止
  • "404" : Not Found 未找到。演示访问一个不存在的页面看报文
  • "500" : Internal Server Error 服务器内部错误。演示页面抛出异常。
  • "503" : Service Unavailable。一般是访问人数过多。

PS:会在文章的末尾为大家提供一份HTTP状态码大全的文档。

6. HTTP消息报头

HTTP消息报头分4类:普通报头、请求报头、响应报头、实体报头 每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的。

6.1 普通报头

应用于所有请求和响应消息且和请求体与响应体无关的信息就存放在普通报头中。

  • Cache-Control: no-cache (用于指示请求或响应消息不能缓存)
  • Date 普通报头域表示消息产生的日期和时间
  • Connection: close/keep-alive (是否开启长连接)

6.2 请求报头

客户端向服务器端传递请求的附加信息以及客户端自身的信息存放在请求报头 常用的请求报头:

  • Accept: text/html,application/xhtml+xml,application/xml; 指定客户端接受哪些类型的信息。
  • Accept-Charset: iso-8859-1,gb2312 客户端接受的字符集 (缺省是任何字符集都可以接受。)
  • Accept-Encoding: gzip,deflate,sdch 可接受的内容编码。 (缺省是各种内容编码都可以接受。)
  • Accept-Language: zh-CN,zh 指定语言。(缺省各种语言都可以接受。)
  • Authorization 用于证明客户端有权查看某个资源
  • Host: www.cnblogs.com 被请求资源的Internet主机和端口号 (缺省端口号:80) 这个报头是必需的
  • User-Agent: Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.0) 操作系统、浏览器和其它属性

6.2 响应报头

响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。 常用的响应报头:

  • Location 响应报头域用于重定向接受者到一个新的位置
  • Server:Apache-Coyote/1.1 服务器信息

6.3 实体报头

请求和响应消息都可以传送一个实体。 常用的实体报头:

  • Content-Encoding: gzip 内容编码
  • Content-Language: zh-CN 语言
  • Content-Length: 10 实体正文的长度
  • Content-Type: text/html;charset=GB2312 返回数据的类型
  • Last-Modified 实体报头域用于指示资源的最后修改日期和时间。
  • Expires:Thu,15 Sep 2006 16:23:12 GMT 响应过期的日期和时间。

参考文献

HTTP协议详解 HTTP 状态码大全文档下载 Content-Type文档下载

http://www.cnblogs.com/simple-blog/p/4377647.html

 

相关文章
|
4天前
|
缓存 网络协议 算法
从零开始掌握HTTP协议:全面详解1.0、1.1和2.0
大家好!我是小米,今天带大家深入探讨互联网基础——HTTP协议。从HTTP/1.0到HTTP/1.1,再到HTTP/2.0,它们是如何发展的,解决了哪些问题,有哪些显着区别?通过这这篇文章,你将全面了解这些协议的变革和优化,掌握关键技术点,提升开发效率。快来一起学习吧!
15 1
|
1月前
|
XML API 网络安全
【安卓】在安卓中使用HTTP协议的最佳实践
【安卓】在安卓中使用HTTP协议的最佳实践
40 4
|
29天前
|
安全 网络协议 网络安全
IP代理的三大协议:HTTP、HTTPS与SOCKS5的区别
**HTTP代理**适用于基本网页浏览,简单但不安全;**HTTPS代理**提供加密,适合保护隐私;**SOCKS5代理**灵活强大,支持TCP/UDP及认证,适用于绕过限制。选择代理协议应考虑安全、效率及匿名需求。
|
15天前
|
存储 安全 搜索推荐
HTTPS协议深度解析
【7月更文挑战第12天】HTTPS协议通过加密通信和身份验证机制,为数据传输提供了强有力的安全保障。在现代互联网环境中,HTTPS已成为保障网站和用户数据安全的重要手段。了解HTTPS的工作原理和安全性特性,有助于更好地应用和维护HTTPS,提升网络安全水平。
|
29天前
|
安全 网络安全 数据安全/隐私保护
深入理解HTTP协议:工作原理与安全性
【6月更文挑战第28天】HTTP是互联网基础协议,用于浏览器与服务器通信。基于请求-响应模型,无状态且可扩展。但其明文传输、缺乏身份验证和数据完整性校验导致安全问题。HTTPS 加入SSL/TLS,提供加密、身份验证和完整性校验,保障网络安全。了解HTTP原理和安全至关重要。
|
13天前
|
网络协议 安全 Python
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
|
23天前
|
安全 算法 网络协议
HTTPS协议的详细讲解(四次握手)
HTTPS协议的详细讲解(四次握手)
|
1月前
|
安全 前端开发 中间件
中间件中HTTP/HTTPS 协议
【6月更文挑战第3天】
34 3
|
29天前
|
数据安全/隐私保护
数据防护之=HTTPS协议增加了<数据加密>
数据防护之=HTTPS协议增加了<数据加密>
|
29天前
|
缓存 开发框架 网络协议
必知的技术知识:HTTP协议和SOCKS5协议
必知的技术知识:HTTP协议和SOCKS5协议