web服务器基础大全

模拟web服务器

  • 理解什么是get和host?

Get:请求指定的页面信息,并返回实体主体。

Host:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

​ 两者的区别:

  1. GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.
  2. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx? name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.
  3. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
  4. GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
  5. GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.
  • 分清楚什么是请求,什么是响应,以及组成他们的元素?

请求:客户端发送到服务器端的请求消息,我们称之为请求(request),其实就是一个按照http协议的规则拼接而成的字符串,Request请求消息包含三部分: 请求行 消息报头 请求正文

  1. 请求行

    1. 格式:
      Method Request-URI HTTP-Version CRLF

    2. Method表示请求方法;一般为GET或者POST ;Request-URI是一个统一资源标识符; HTTP-Version表示请求的HTTP协议版本; CRLF表示回车和换行

    3. 例如: GET /test.html HTTP/1.1 通过http1.1协议向服务器请求一个test.HTML的资源

  2. 消息报头 http header

    1. 通过:连接的一些类似键值对的信息

    2.    GET /test.html HTTP/1.1 
         Host: 127.0.0.1:9999 
         User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
         Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
         Accept-Language: zh-CN,en;q=0.8,zh;q=0.5,en-US;q=0.3 
         Accept-Encoding: gzip, deflate 
         Connection: keep-alive 
      
  3. 请求正文 http body

    1. 请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的字符串信息

    2. 注意:在第二部分header和第三部分body之间有个空行,除非没有请求正文

响应:服务器在接收和解释客户端的请求消息后,服务器会返回给客户端一个HTTP响应消息,我们称之为响应(response)。其实也是一个按照http协议的规则拼接而成的一个字符串
HTTP响应也是由三个部分组成,分别是: 响应状态行、消息报头、响应正文

  1. 响应状态行

    1. HTTP-Version Status-Code Reason-Phrase CRLF
    2. HTTP/1.1 200 OK
    3. HTTP-Version表示服务器HTTP协议的版本;
      Status-Code表示服务器发回的响应状态代码;
      Reason-Phrase表示状态代码的文本描述。
      CRLF表示回车和换行
  2. 消息报头

    1. HTTP消息报头包括普通报头、请求报头、响应报头、实体报头这四大类。

    2. 通过响应的消息报头里面的属性 Content-Type 来表示

    3. ("png", "image/png;charset=utf-8");
      ("pdf", "application/pdf;charset=utf-8");
      ("html", "text/html;charset=utf-8");
      ("txt", "text/html;charset=utf-8");
      "Content-Type: text/html;charset=utf-8\r\n"
      
  3. 响应正文

    1. 响应正文就是服务器返回的资源的内容
  • 如何在Ubuntu上部署项目?

先把项目打成jar包

然后将资源文件和jar包利用远程控制工具部署到虚拟机中

然后在虚拟机中java -jar server.jar打开服务器

就可以在本机中通过ip地址和端口号以及get/host请求获取到资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值