HTTP协议(Hypertext Transfer Protocol)超文本传输协议

什么是http协议

HTTP协议是一种用于传输超文本数据的应用层协议,它是万维网的基础。HTTP协议建立在TCP协议之上,通过TCP协议提供可靠的数据传输服务。HTTP协议定义了客户端和服务器之间交换的消息格式和规则,包括请求方法、响应状态码、请求头、响应头等内容。在Web应用程序中,浏览器作为客户端向服务器发送HTTP请求,服务器收到请求后进行处理并返回HTTP响应。

http协议是一种无状态的协议,是指浏览器和服务器之间不需要建立持久的连接,其本质是浏览器发起请求,服务器响应后该连接就关闭。HTTP报文只有请求报文和响应报文。

 请求报文包括请求行,请求头,请求体。其中请求头和请求体之间有一个空行

HTTP请求行由三部分组成,分别是请求方法、请求URI和HTTP协议版本

  • GET:获取资源,显示在URL地址栏中
  • POST:提交数据,用于创建资源,在请求体中显示
  • PUT:更新资源,一般都是默认关闭的
  • DELETE:删除资源,一般也是默认关闭
  • HEAD:获取资源的元数据,与GET方法类似,但不返回实际内容
  • OPTIONS:获取服务器支持的HTTP方法
  • CONNECT:建立一个到资源的管道,用于代理服务器等场景
  • TRACE:回显服务器收到的请求,用于调试和测试

HTTP请求头中包括:

  • Content-Type:指定请求体的类型,如 application/json、application/x-www-form-urlencoded 等。
  • Cookie:包含之前由服务器通过 Set-Cookie 设置的 cookie 值。
  • User-Agent:标识客户端类型,如浏览器类型和版本等。
  • Host:指定所请求的目标服务器的主机名和端口号
  • Referer:用于指示当前请求的来源页面,即上一个页面的URL
  • X-Forwarded-for:请求客户端的真实IP
  • Accept:指定客户端所接受的MIME数据类型

 响应报文包括响应行,响应头,响应体。其中响应头和响应体之间有一个空行

 HTTP响应行

  • 响应行(Status Line):包括HTTP协议版本、状态码和状态描述,例如:HTTP/1.1 200 OK

HTTP响应头

常见的HTTP状态码包括:

  • Content-Type:指定响应体的类型,如 text/html、application/json 等。
  • Content-Length:指定响应体的长度,单位为字节。
  • Cache-Control:控制缓存行为,如 no-cache、max-age 等。
  • Expires:指定响应的过期时间,通常与Cache-Control配合使用。
  • Last-Modified:指定资源的最后修改时间,用于缓存验证。
  • ETag:指定资源的唯一标识符,用于缓存验证。
  • Set-Cookie:向客户端发送Cookie值,用于会话管理和个性化设置。
  • Server:指定服务器软件的名称和版本号。
  • Location:用于重定向客户端到另一个URL。当服务器收到请求后,如果需要将客户端重定向到另一个URL,可以通过设置Location头来实现。                                                                    
  • HTTP状态码是服务器向客户端返回的三位数字代码,用于表示服务器对客户端请求的响应结果。HTTP状态码共分为五类,分别以不同的数字开头,具体如下:

  • 1xx(信息性状态码):服务器已接收到请求,但需要进一步的操作才能完成请求。
  • 2xx(成功状态码):服务器已成功处理请求。
  • 3xx(重定向状态码):服务器需要客户端执行附加操作才能完成请求。
  • 4xx(客户端错误状态码):服务器无法处理客户端发送的请求,通常是由于客户端发送的请求有误或缺少必要的参数等原因。
  • 5xx(服务器错误状态码):服务器在处理请求时发生了错误。
  • 200 OK:表示请求成功。
  • 301 Moved Permanently:表示请求的资源已永久移动到新的URL。
  • 302 Found:表示请求的资源已临时移动到新的URL。
  • 400 Bad Request:表示客户端发送的请求有误。
  • 401 Unauthorized:表示需要进行身份验证才能访问资源。
  • 403 Forbidden:表示客户端没有访问资源的权限。
  • 404 Not Found:表示请求的资源不存在。
  • 500 Internal Server Error:表示服务器在处理请求时发生了错误。
  • cookie和session

  • Cookie和Session都是用于在Web应用程序中跟踪用户状态的技术,但它们的实现方式不同。

  • Cookie是一种在客户端存储数据的技术,服务器可以通过在HTTP响应头中设置Set-Cookie字段来向客户端发送Cookie值,客户端会将这些值存储在本地,并在后续的请求中自动发送给服务器。Cookie通常用于会话管理和个性化设置,例如存储用户的登录状态、语言、主题等。Cookie的优点是易于实现和跨平台,但缺点是存储在客户端本地,可能会被篡改或删除。

  • Session是一种在服务器端存储数据的技术,服务器会为每个用户创建一个唯一的会话ID,并将该ID存储在Cookie中或者通过URL重写传递给客户端。客户端将会话ID发送给服务器后,服务器会根据该ID获取对应的会话数据。Session通常用于会话管理和安全验证,例如存储用户的登录状态、权限等。Session的优点是安全可靠,但缺点是需要占用服务器资源,且无法跨域名共享。

  • HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)   超文本传输安全协议        HTTPS是HTTP协议的安全版本,通过使用SSL或TLS协议对数据进行加密,确保数据在传输过程中不被窃听、篡改或伪造。HTTPS协议通常用于需要保护用户隐私和数据安全的网站,例如银行、电子商务等网站。

  • HTTPS协议的工作原理如下:

  • 客户端向服务器发送HTTPS请求。
  • 服务器将自己的证书发送给客户端。
  • 客户端验证服务器的证书是否合法。
  • 如果证书合法,客户端生成一个随机的密钥,并使用服务器的公钥进行加密,将密钥发送给服务器。
  • 服务器使用自己的私钥进行解密,获取客户端生成的密钥。
  • 服务器和客户端使用这个密钥进行加密和解密,保证数据在传输过程中不被窃听、篡改或伪造。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值