程序进阶计划-- 1.http网络请求原理。

1. 对http的原理还不是很清楚,只是个模糊的概念,准备把这块搞清楚。

参考博客:http://www.imooc.com/article/1851



传输层协议:

1.TCP: HTTP(大多数) ,FTP,SMTP

2.UDP:HTTP,XMPP.POP;


TCP: 

1.面向连接;

2.三次握手 : 客户端 --SYN-->服务器--SYN(ACK)-->客户端 --ACK-->服务器

3.四次挥手:    客户端 --FIN-->服务器(close wait)--ACK-->客户端 

服务器--FIN-->客户端 (TIME WAIT)--ACK-->服务器(CLOSE)     客户端 --->CLOSE

4.数据的可靠性(校验位)每一个包都带有上个包的校验位;


选择上:容错高,数据包小,承受丢包风险(音视频) 选择UDP,其他应该选择TCP



HTTP:

1.特点:无连接(每次只做一个请求处理,处理完毕即刻断开连接,节省传输时间)

               无状态(对于事物处理没有记忆功能,后续需要前面的信息必须重新传,传输量增大)



2.消息格式(三个部分):

首行 :指出http的属性(固定格式),在请求和响应消息时略有区别  ------>>>>唯一必有

头部(header)

正文(body):传输的实际内容,格式任意。通常由content-type来指定


   *Http消息主要是基于ASCII编码的消息体,指首行和正文的编码方式(文本流),而正文则是一般随意(字节流),较多的用UTF-8格式编码


http传输顺序首行,头部,正文,一个特殊的控制结构CRLF(/r/n)来控制每个部分的结束即:

首行 CRLF 头部 CRLF 正文CRLF    其中头部格式:head1CRLFhelder2CRLF  一个单独的CRLF(紧接着上一个CRLF)表示整个头部的结束

实例:

GET请求:没有请求正文,但可以包含querey-string

以明文的方式通过URL提交数据,数据在URL中可以看得见,提交数据最多不超过2kb。安全性低但是效率比post高。适合提交数据量不大,安全性不高的数据。




一个单独的CRLF(紧接着上一个CRLF)表示整个头部的结束

POST请求:带json格式正文的post请求

适合提交数据量大,安全性高的用户信息。



HTTP请求 (请求行,请求头部,请求正文)

1.请求行.基本格式: 方法 路径 版本  GET         /simple.html  HTTP/1.1

方法:GET,POST, 服务器对于方法的处理是没有强制的规范的。

路径:basic-path[?query-string]  []为可选参数,采用key-value形式&连接多个参数,k= 和 k是被允许的

版本:生命HTTP消息的解析规则,不同版本在某些地方表现不同 但大多数都是1.1版本


/**

当键值对出现&和=这样的字符,我们只能用他的ASCII编码进行赋值

k1:&     k2: =

k1=%26&k2=%3D

其中&的16进制是26,=的16进制表示是3D, 格式是%XX三个字符表示

**/


浏览器一般会对GET方法的请求资源做一些缓存,下次请求坑能从缓存去取,

但是服务器将获取资源的方法定义为post那么浏览器就不能对资源进行缓存了,即使是

同样的内容,都需要服务器重新发送一遍


Get方法请求是不能定义消息体的,HEADF方法请求是不包含消息体的,这些都是http协议对http的方法约束;

每个方法有自己的使用范围,和作用域。



Http请求头:

以冒号的键值对分开,如:

Accept: text/html 
Accept-Language: zh-cn 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 
Host: localhost:8080 
Connection: Keep-Alive

Content-Type: application/json



Http响应:响应首行,响应头部,响应正文


响应首行:版本号       状态码      状态文本

  HTTP/1.1     200 OK


状态码一般分为5类:

1XX :信息

2XX:请求处理成功

3XX:重定向

4XX:客户端错误

5XX:服务器错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值