HTTP会话的四个过程
1. 建立tcp连接
2. 发出请求文档
3. 发出响应文档
4. 释放tcp连接

HTTP协议

客户端连上web 服务器后,若想获得 web 服务器中的某个 web 资源,需遵守一定的通讯格式, HTTP 协议用于定义客户端与 web 服务器通迅的格式。

WEB浏览器与 WEB 服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是 HTTP 协议。

HTTP是 hypertext transfer protocol (超文本传输协议)的简写,它是 TCP/IP 协议集中的一个应用层协议,用于定义 WEB 浏览器与WEB 服务器之间交换数据的过程以及数据本身的格式。

HTTP协议的版本

HTTP/1.0、 HTTP/1.1

HTTP协议是学习 JavaWEB 开发的基石,不深入了解 HTTP 协议,就不能说掌握了 WEB 开发,更无法管理和维护一些复杂的 WEB 站点。深入理解 HTTP 协议,对管理和维护复杂的 WEB 站点、开发具有特殊用途的 WEB 服务器程序具有直接影响。

HTTP 1.0的会话方式

浏览器与WEB 服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每一个页面的访问,浏览器与 WEB 服务器都要建立一次单独的连接。 浏览器到 WEB 服务器之间的所有通讯都是完全独立分开的请求和响应对。

四个步骤:

支持代理:

HTTP 1.1的特点

在一个TCP 连接上可以传送多个 HTTP 请求和响应

多个请求和响应过程可以重叠进行

增加了更多的请求头和响应头

HTTP1.0和 HTTP1.1 的区别

在HTTP1.0 协议中,客户端与 web 服务器建立连接后,只能获得一个 web 资源。

HTTP1.1协议,允许客户端与 web 服务器建立连接后,在一个连接上获取多个 web 资源。

HTTP请求的细节——请求行

请求行中的GET 称之为请求方式,请求方式有:

POST、 GET 、 HEAD 、 OPTIONS 、 DELETE 、 TRACE 、 PUT

常用的有: GET 、 POST

用户如没有设置,默认情况下浏览器向服务器发送的都是get 请求,例如在浏览器直接输地址访问,点超链接访问等都是 get ,用户如想把请求方式改为 post ,可通过更改表单的提交方式实现。

不管POST 或 GET ,都用于向服务器请求某个 WEB 资源,这两种方式的区别主要表现在数据传递上:

如请求方式为GET 方式,则可以在请求的 URL 地址后以 ? 的形式带上交给服务器的数据,多个数据之间以 & 进行分隔,例如:

GET /mail/1.html?name=abc&password=xyz HTTP/1.1

GET方式的特点:在 URL 地址后附带的参数是有限制的,其数据容量通常不能超过 1K 。

如请求方式为POST 方式,则可以在请求的实体内容中向服务器发送数据, Post 方式的特点:传送的数据量无限制。

HTTP请求的细节——消息头

用于HTTP 请求中的常用头

Accept: text/html,image/*

Accept-Charset: ISO-8859-1

Accept-Encoding: gzip,compress

Accept-Language: en-us,zh-cn

Host: www.it315.org:80

If-Modified-Since: Fri, 11 Dec 2015 18:23:51 GMT

Referer: http://www.it315.org/index.jsp

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

Cookie

Connection: close/Keep-Alive

Date: Fri, 11 Dec 2015 18:23:51 GMT

HTTP响应的细节——状态行

状态行

格式: HTTP 版本号 状态码 原因叙述 <CRLF>

举例:HTTP/1.1 200 OK

状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5 类,如下所示:

响应状态码à典型情况

200(正常)

表示一切正常,返回的是正常请求结果。

302/307(临时重定向)

指出被请求的文档已被临时移动到别处,此文档的新的URL 在 Location 响应头中给出。

304(未修改)

表示客户机缓存的版本是最新的,客户机应该继续使用它。

403(禁止)

服务器理解客户端请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置所致。

404(找不到)

服务器上不存在客户机所请求的资源。

500(内部服务器错误)

服务器端的CGI 、 ASP 、 JSP 等程序发生错误。

HTTP响应细节——常用响应头

HTTP请求中的常用响应头

Location: http://www.it315.org/index.jsp

Server:apache tomcat

Content-Encoding: gzip

Content-Length: 80

Content-Language: zh-cn

Content-Type: text/html; charset=GB2312

Last-Modified: Fri, 11 Dec 2015 18:23:51 GMT

Refresh: 1;url=http://www.it315.org

Content-Disposition: attachment; filename=aaa.zip

Transfer-Encoding: chunked

Set-Cookie:SS=Q0=5Lb_nQ; path=/search

ETag: W/”7777-1242234904000”

Expires: -1

Cache-Control: no-cache

Pragma: no-cache

Connection: close/Keep-Alive

Date: Fri, 11 Dec 2015 18:23:51 GMT


http://www.taodudu.cc/news/show-4701350.html

相关文章:

  • 1. 数据库的四个基本概念
  • 事务的四个属性
  • 防火墙的四个阶段
  • 测试必须要知道的四个主要阶段
  • Echarts 空运图 和 海运图 以中国为中心的地图 中英文地图切换
  • android高德地图瓦片,2017版高德地图瓦片分析
  • JSON parse error: Invalid UTF-8 start byte 0xa0\n
  • sort sort -r sort -n sort -nr的区别
  • 计算方法(二):n次多项式插值
  • SNR、BER、Eb/N0之间的区别与联系
  • while (n-- 0) 的用法
  • 创建二维数组 以及 python中[0 ]* n与[0 for _ in range(n)]的区别与联系
  • python opencv报drawContours '(-215) npoints 0'
  • 信噪比SNR、符号信噪比Es/N0与比特信噪比Eb/N0的关系
  • 6-2 多项式求值(15 分) 本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑ ​i=0 ​n ​​ (a[i]×x ​i ​​ ) 在x点的值。
  • 【转】通信人必看之区别:S/N,C/N,Eb/N0,Ec/N0,Es/N0
  • 判断N!末尾有多少个0
  • C++ 求n的阶乘n!(n0)
  • 4-2 多项式求值   (15分) 本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式 f(x)=∑i=0n(a[i]×xi)f(x)=\sum_{i=0}^{n}(a[i]
  • 第19 题: 题目:定义Fibonacci 数列如下: / 0 n=0 f(n)= 1 n=1 \ f(n-1)+f(n-2) n=2
  • 基于GM(0,N)的时间序列预测R实现
  • mysql_0n-常见函数-211116
  • 深度学习中参数量与计算量的理解
  • 5G时代的边缘计算丨文末赠书
  • 【book】计算机组成原理
  • MySQL explain执行计划解读
  • 【深度学习】深度学习中模型计算量(FLOPs)和参数量(Params)等的理解以及四种在python应用的计算方法总结
  • Uniswap计算过程推演
  • 第十周项目二 M$pszi$y是什么意思?
  • 1052:计算邮资

http会话的四个过程相关推荐

  1. C++ —— C++程序编译的四个过程

    C++ -- C++程序编译的四个过程 g++是Linux下C++的编译器:我为什么会选择Linux下的g++编译器,就是因为g++可以看到程序从编译到运行的过程做了些什么.而VS等集成开发环境看不到 ...

  2. 从C源代码到可执行文件的四个过程:预处理、编译、汇编、链接

    从C源代码到可执行文件的四个过程:预处理.编译.汇编.链接 总览 我们将在Linux操作系统中,以C语言的Hello World程序为例,用gcc编译器分步执行这四个步骤. 我们有再熟悉不过的Hell ...

  3. 了解“预编译、编译、汇编、链接”这四个过程对你有很大帮

    转自:胡薇 了解"预编译.编译.汇编.链接"这四个过程对你有很大帮助-电子发烧友网 如有侵权,告知立马删除 补充:C语言条件编译及编译预处理阶段 - Rusty's code - ...

  4. gcc编译的四个过程

    gcc是什么? GNU编译器套件(GNU Compiler Collection)包括C.C++.Objective-C.Fortran.Java.Ada和Go语言的前端,也包括了这些语言的库(如li ...

  5. 编译的四个过程-预处理、编译、汇编、链接

    编译的四个过程-预处理.编译.汇编.链接 程序编译成可执行文件的过程可分为四步:预处理.编译.汇编.链接.下面将以main.c为目标文件进行详细讲解: 1.预处理: 通过gcc -E main.c - ...

  6. Linux 10分钟掌握Linux常用开发工具及编译的四个过程

    Linux下的常用开发工具 软件包管理工具 yum–类似于手机上的应用商店(管理当前系统中能够安装的工具以及卸载的工具,并且实现安装及卸载操作) 1.查看所能安装的软件:yum list 查看所有工具 ...

  7. SIP协议简介(二)之会话建立的详细过程(INVITE)

    SIP是基于一个类似HTTP协议的请求应答的通讯模式.每一个通讯都包含对某个功能的请求,并且起码需要一个应答.在这个应答中,通信双方的Alice的软电话发送一个含有通信双方的Bob的SIP URI抵制 ...

  8. I2C总线学习(四)--读写过程

    写入过程 单片机进行写操作时,首先发送该器件的7位地址码和写方向位"0"(共8位,即一个字节),发送完后释放SDA线并在SCL线上产生第9个时钟信号.被选中的存储器器件在确认是自己 ...

  9. SaS中ne在mysql语句对应_SAS学习经验总结分享:篇四—SQL过程

    SQL过程 SQL过程是实现对数据集或关系数据库的表进行操作的过程,对数据集或关系数据库的表进行查询.修改.创建表.删除数据.插入数据和更新数据等功能.提现了SAS对大型数据库管理系统通用的SQL语言 ...

最新文章

  1. Linux-企业邮件部署
  2. H5 App开发工具 WeX5
  3. zip的用法python_Python学习之zip函数的用法
  4. C#操作数据库(一)【连接SQL Server数据库】
  5. web开发常用js功能性小技巧(转)
  6. pythonweb开发工作内容_我的第一个python web开发框架(5)——开发前准备工作(了解编码前需要知道的一些常识)...
  7. 固定ip_1分钟学会查看跨境卫士费用和选择固定IP
  8. Nginx学习笔记(三) Nginx基本数据结构
  9. 2022爱分析·国央企数字化实践报告
  10. 复读复旦大学计算机考研,2021车辆跨考计算机408,407分上岸复旦计算机,弯路预警!!!...
  11. java log4j trace_关于LOG4J中的日志级别TRACE
  12. linux cpu使用率太高,小技巧:教您一个窍门!解决Linux下CPU使用率过高的问题
  13. reactjs前端实现文件新窗口下载
  14. GRV – 可视化git仓库工具
  15. 渗透测试实战指南笔记
  16. 计算机平面设计中汉字的使用艺术
  17. 【解决】Failure to find com.xxx:xxx-target:pom:1.0-SNAPSHOT in https://xxxx/snapshot was cached in the
  18. pytorch学习 -- 反向传播backward
  19. FTPClient上传文件storeFile失败,没有异常,切换目录操作可以成功
  20. CityMaker学习教程13 osg模型的移动

热门文章

  1. 2014年最新世界各国面积排名(172个国家)
  2. 【shell命令】拆分、合并、排序、比较文件
  3. 计算机教学反思杂文,学无止境_教学反思_教学随笔
  4. IOS截屏,View截图的基本方法
  5. 2006世界杯夺冠热门分析
  6. 【Google 开发者大会】一篇看懂 TensorFlow 如何助力高效开发
  7. 野路子记录玩耍树莓派心路历程
  8. 账号泄露如何检测查询
  9. 计算机网络授时设置,网络授时系统,网络校时系统
  10. 案例分享|国内某大行数据平台案例