2020-11-7(http协议简介)

1.web相关概念介绍
b/s browser/server 更新只在服务端进行(访问东西都到服务端)
c/s client/server 客户端
通俗滴说就是 访问b/s架构的东西时,不需要在客户端安装东西,可以直接通过浏览器界面(b/s)进行操作

2.常见的常见服务器介绍
iis(微软开发的)使用.net技术,C# 收费
weblogic(原来weblogic属于weblogic公司) (被收购)---->bea(被收购)-----> Oracle java开发的大型服务端程序 (javaee规范 收费)

webspera IBM java开发的大型服务端程序 (javaee规范 收费)

Tomcat 中小型服务端程序 (免费 支持部分javaee规范) jsp
(配合servlet使用)

LAMP(apache PHP联合使用)

静态的web资源 html
动态的web资源 触发了服务端的程序,由服务端的程序动态生成web相关的内容

3.tomcat
a.JAVA_HOME必须配置的
b.如果当前的电脑上装了多个tomcat还需要指定catlina_home catlina_home就是配置到tomcat的解压目录,能看到bin目录这一级
如果发现双击start up界面一闪而过,可以开启一个控制台,在控制台中允许startup.bat 根据提示做相关的配置

发布web项目到tomcat
a.在webapps目录下,创建一个文件夹,把要发布的web页面放到文件夹内
b.通过.war包的形式发布web项目 把想要发布的内容压缩成.zip文件(要用标准压缩模式),修改扩展名为.war,把war文件拷贝到webapps目录下,tomcat会自动解压缩.war,想删除项目,直接把.war删除即可(解压前提是tomcat运行起来)

4.http协议相关内容
TCP/IP 协议
ip 信封 通过ip可以确定唯一的一台主机,通过端口确定要访问的具体程序
TCP/UDP
TCP 面向连接,连接的时候 三次握手,断开的时候四次挥手(相对安全,效率稍低)
UDP 面向无连接(安全性差,可能丢失数据)

http协议是基于tcp

socket java搞出来的做TCP/IP开发的一套接口(java的API)
(例如:在服务端这边有 server socket等待着客户端连接,客户端new一个socket,传一个ip,端口,即可和服务端连接)
记住:TCP/IP不包含socket,和socket无关,只不过在java下,要做TCP/IP相关的开发,要用到API就是socket
(ip代表一个主机,端口代表主机上运行的程序)

http—>tcp—>ip
http 超文本传输协议
http1.0每一次请求之后都会断开连接
http1.1每次请求之后不必断开,keepconnection(目前使用)

请求 request get/post put head trace delete
get 参数提交方式(所有的参数都放到url后面,URL跟参数之前用?隔开,每一个参数直接用&符号隔开)
提交参数的长度有限制(http协议对get方式提交参数长度没有限制,只不过浏览器的地址栏有限。。2K~8K)根据所有的浏览器而言一般不超过2K,实际上是浏览器对url 的长度有限制
post 参数的组拼方式,每一个参数之间用&符号隔开,key=value形式
参数是放到请求体中,具体长度不受限制(一些特定的需求,比如文件上传必须使用post)

请求行 :包括请求的地址 请求的方法 http版本

请求头:
get方式的请求头:
a.host 请求主机的ip
b.user_agent 告诉服务端,当前浏览器可以处理的数据类型
b.Accept:告诉服务端,当前浏览器可以处理的数据类型
d.Accept-Language:告诉服务器,当前浏览器可以接受的语言
e.Accept-Encoding:告诉服务器,当前浏览器可以支持的压缩格式
f.Referer:提交的url
g.Connection:时候断开连接

post方式的请求头:
如果有参数提交,那么会比get方式多两个请求头
a.host 请求主机的ip
b.user_agent 告诉服务端,当前浏览器可以处理的数据类型
b.Accept:告诉服务端,当前浏览器可以处理的数据类型
d.Accept-Language:告诉服务器,当前浏览器可以接受的语言
e.Accept-Encoding:告诉服务器,当前浏览器可以支持的压缩格式
f.Referer:提交的url
g.Connection:时候断开连接
h.Content-Type:告诉服务端提交的数据类型
i.content-length:告诉服务端提交的参数的数据类型

请求体:
get方式提交没有请求体
post方式才有请求体:
通过url编码把所要提交的数据进行编码,然后把所有的参数以流的形式提交到服务端

响应 response
响应行:
a.响应码((200299:说明请求成功,服务端成功返回数据)(300399:服务端收到了请求,但是需要客户端进行近一步操作)(400499:请求错误(客户端问题))(500599:服务端错误))
200:请求成功,服务端成功返回数据
302:请求重定向,当前服务端成功返回结果,告诉客户端请求另外一个资源
304 :告诉客户端当前服务端没有更新,可以使用缓存
404:未找到资源
500:服务端问题,服务端错误
b.http版本号

响应头
a.Accept-Ranges:说明当前服务端返回数据的单位
b.Content-Length:响应体长度
c.Content-Type:响应的类型
d.Date:服务端当前的时间
e.Etag Last-Modified: 用来判断服务端内容是否有变化,如果Etag Last-Modified两次访问内容都没有变化,说明在两次访问的时间间隔内服务端没有发生改变,可以使用缓存的数据
f:Serve:面熟当前服务端的类型

响应体
response里的那段html

http响应后操作:
判断服务端响应行返回的状态码,如果是200,获取流把响应体的内容读出来,通过响应头判断数据类型做对应的展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻梦&之璐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值