`
zhangkehbg
  • 浏览: 10896 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

http协议学习二

 
阅读更多

之前的博客HTTP学习对HTTP协议的具体内容没有进行详细的,今天再补充点。

1,http url :格式:schema://host[":"port][abs_path

schema是表示用的什么协议,如http ,https,ftp等。

host代表Internet主机域名或者IP地址。

port代表端口号,默认端口为80。

abs_path代表资源的路径。如果没给出路径,则以‘/’的形式给出。

2,http请求:

格式:请求行 请求报头 请求正文

请求行:请求方法 请求资源的路径 请求的HTTP协议版本 分别代表Method Request-URI HTTP-Version CRLF  。

请求报头:

也叫请求消息,请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头,空行(只有CRLF的行),消息正文(可选)组成。

请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。

比较常用的请求报头有:Accept(制定客户端接受的文件类型),Accept-Charset(指定字符集),Accept-Encoding(指定接受的内容的编码),Accept-Language(指定一种语言),Authorization,Host(Host请求报头域主要用于指定被请求资源的Internet主机和端口号)

请求正文:

请求正文与请求消息中间隔一行,请求正文中可以包含客户提交的查询字符串信息等。

 

请求方法:

请求方法经常见到的有GET,POST两种方法,但又不只有这两种,还有PUT,DELETE,HEAD,TRACE,OPTIONS.每一种方法都有其相应的功能。GET主要负责从服务器获取资源信息,POST负责将附加的数据添加到请求中提交到服务器,PUT负责将增加资源信息,DELETE负责删除资源。TRACE :请求服务器回送收到的请求信息,主要用于测试或诊断,CONNECT:保留将来使用,OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求

 

GET,POST的区别:

顾名思义,get就是从服务器获取资源,不会修改数据库的数据,而post则不同,post会向数据库发送修改请求,举个例子,get就如同我们在搜索框输入搜索的关键字,通过get方法,将输入的字添加到url后,传到服务器,查询相关的资源,而post就如我们在一个注册页,填写信息,信息就会通过post方法,将信息写在http请求正文中,传到服务器,存入并更改数据库。get能传的数据比较少,最多1024B,post则能传送比较大的数据。安全性方面,get方法比post若,因为get方法的信息都是直接写在url以明文的方式传送,而post则可以通过一些方法进行加密写入请求正文传送。

 

 

 

3,http响应:

包括:状态行,响应报头,响应正文

状态行由协议版本、数字形式的状态代码、及相应的状态描述,各元素之间以空格分隔。

附一些状态代码代表的含义:

1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求

状态描述既是对状态代码的描述。如 404   Not Found   请求的资源不存在。

 

响应报头:

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

常用的响应报头有location,server.location为重定向接受者到一个新的地址。server代表服务器用来处理请求的软件信息。

 响应正文:服务器返回的资源的内容。

 

 

今天还去了解了一下服务器和代理服务器。先说说代理服务器吧,代理服务器分几种,分别有正向代理,反向代理和透明代理。

正向代理总结一下就是位于客户端与原始服务器之间的服务器,起到加速访问的效果,如果代理服务器上有缓存的请求的数据,则可以直接返回给客户端。

反向代理与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置,直接发送请求到反向代理服务器,代理服务器再请求服务器然后响应请求。

反向代理的主要作用是负载均衡,当有多数的客户端请求原始服务器时就可以通过不同的代理服务器去响应请求,代理服务器上也可以缓存一些静态的资源,减轻原始服务器压力的同时提高响应速度。Nginx则是近几年最火的反向代理服务器。

还有一个透明代理,就不详细介绍了。

 

 

Session和Cookie

因为http是无状态的,Session和Cookie都是用来保持状态的,Session是服务器端的解决方法,而cookie是客户端的解决方法。

session:服务器上为客户端开辟的存储空间,第一步:创建session,在服务器端程序运行的过程中创建,创建session的时候,服务器会为该session生成唯一的sessionId.第二步:服务器在响应客户端请求的时候调用session,添加内容。第三步:服务器将sessionId发送这客户端。第四步:客户端再次请求的时候,带上sessionId.第五步:服务器通过请求中的sessionid找到session,并使用。

cookie:客户端在http请求中将个人信息传到服务器,服务器响应请求的时候,将个人信息加到响应头中,到达客户端时,将响应头中的信息存储为cookie。客户端再次请求的时候,会把cookie中的信息添加到请求头中发送到服务器。

cookie 和session 的区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗
   考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用cookie

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

 

 

分享到:
评论

相关推荐

    HTTP协议学习心得体会[参考].pdf

    HTTP 协议学习心得体会 概述: HTTP 协议(HyperText Transfer Protocol)是 TCP/IP 协议集中的一个应用层协议,用于定义浏览器和 Web 服务器之间交换数据的过程以及数据本身的格式。HTTP 协议是无状态的,通信过程...

    使用网络分析软件学习HTTP协议.pdf

    ### 使用网络分析软件学习HTTP协议 #### 一、学习目的 本书旨在介绍如何利用网络分析软件来学习HTTP协议的基础知识。对于初次接触网络分析的新手来说,从理论入手往往难以获得直观的感受,也难以积累实战经验。...

    http协议学习资料

    在本文中,我们将深入探讨HTTP协议的核心概念,包括URL的组成部分、HTTP的无状态特性以及HTTP消息的结构。 URL(统一资源定位符)是互联网上资源的唯一地址,其基本格式如下: - schema: 指定使用的协议类型,如...

    协议学习协议学习300

    在IT行业中,协议学习是构建通信系统的基础,它涉及到如何让不同的设备或系统之间能够有效地交换数据。"协议学习协议学习300"这个标题可能是针对一个深入学习300个核心通信协议的教学资料或者课程,旨在帮助学习者...

    认清http协议本质

    HTTP(Hypertext Transfer Protocol)超文本传输协议是互联网上应用最为广泛的一种网络协议,它定义了客户端(浏览器或其他HTTP客户端...通过深入学习和实践,我们可以更好地利用HTTP协议来构建高效、安全的网络应用。

    网络协议TCP/IP实验七 HTTP 协议分析实验

    2. **理解HTTP协议的工作机制**:通过对捕获的报文进行分析,进一步理解HTTP协议如何在客户端与服务器之间进行通信,包括连接的建立、请求与响应的过程等。 #### 实验内容及步骤详解 1. **启动Ethereal并设置过滤...

    网络协议学习资料

    2. 传输层:传输层的核心协议是TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供面向连接的服务,保证数据的可靠传输,通过序列号、确认应答、重传机制等确保数据的完整性和顺序;UDP则是无连接的服务,不保证...

    HTTP协议学习笔记之c++

    ### HTTP协议学习笔记之C++ #### 一、HTTP协议基础 HTTP(Hypertext Transfer Protocol)是一种应用层协议,主要用于客户端(例如Web浏览器)与服务器之间的数据交换。它基于TCP/IP协议栈,利用TCP来确保数据传输...

    http协议学习总结共10页.pdf.zip

    这份"HTTP协议学习总结共10页.pdf"的资料,很可能包含了对HTTP协议的全面概述,包括其原理、结构、请求方法、响应状态码、报文格式以及与HTTPS的区别等内容。 1. HTTP协议原理:HTTP协议是一种无状态、基于请求与...

    HTTP协议详解PDF

    总结来说,这份"HTTP协议详解PDF"是学习HTTP协议的重要参考资料,它可以帮助开发者和网络从业者深入理解HTTP的工作方式,提高他们在Web开发和网络通信中的专业技能。同时,"更多电子资料.docx"可能是与HTTP协议相关...

    HTTP协议详解电子书

    HTTP协议详解电子书 ...HTTP协议是基于TCP/IP通信协议来传输数据的,主要负责客户端(浏览器)与服务器之间的通信。...通过学习这些内容,读者能够更全面地理解HTTP协议,从而更好地进行Web开发和网络编程。

    HTTP/http协议中文手册

    HTTP协议是基于TCP/IP通信协议来传递数据的,主要用于Web浏览器与Web服务器之间的信息传输。 在HTTP协议中,通信过程通常由客户端发起请求(Request),服务器接收请求并返回响应(Response)。请求通常包含方法...

    HTTP协议抓包工具

    在学习和研究HTTP协议时,抓包工具尤其重要,因为它们能够揭示请求和响应的实际过程。 本文将详细介绍一个专门针对HTTP协议的抓包工具,以及其可能的功能和使用方法。 标题提到的"HTTP协议抓包工具"可能是针对HTTP...

    张孝祥_HTTP协议详解

    张孝祥老师的JAVA课堂深入讲解了HTTP协议,帮助我们理解这个互联网基石的核心概念。 一、HTTP协议基础 HTTP协议基于TCP/IP通信协议来传递数据,它工作在应用层。HTTP协议的特点是非连接性和无状态性,即每次请求和...

    深入了解http协议

    HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,它定义...HTTP协议的深入学习还包括请求方法、状态码、头部字段、缓存策略、分块传输编码等多个方面,这些都是构建高效、安全的Web服务的关键组成部分。

    HTTP协议详解及RFC2616(HTTP)中文版

    **HTTP协议详解** HTTP(Hypertext Transfer Protocol)超文本传输协议是互联网上应用最广泛的一种网络协议。它是用于从万维网服务器传输超文本到本地浏览器的传输协议,是Web应用的基础。HTTP协议定义了客户端...

    http协议的相关介绍

    学习HTTP协议有助于我们更好地理解和优化Web应用的性能,解决网络通信中的各种问题。无论你是开发者、网络管理员还是网络安全专家,深入理解HTTP协议都是至关重要的。通过阅读《HTTP权威指南》等专业书籍,或者在线...

    http协议详解(含中英文两版电子书)

    本资源包含HTTP协议的中英文双语版电子书,对于学习和理解HTTP协议具有极大的帮助。 HTTP协议的基础是请求-响应模型。当用户在浏览器中输入URL并按下回车键时,浏览器会向服务器发送一个HTTP请求。请求由三部分组成...

Global site tag (gtag.js) - Google Analytics